代码之家  ›  专栏  ›  技术社区  ›  Lolly

Java Spring Rest客户端连接重置错误

  •  0
  • Lolly  · 技术社区  · 6 年前

    我已经使用下面的代码实现了rest客户端来使用rest Web服务,

    Client client = Client.create();
    client.addFilter(new HTTPBasicAuthFilter(USERNAME,PASSWORD)); 
    WebResource webResource = client.resource(URL);
    ClientResponse clientResponse = webResource.type("application/json").accept("application/json").post(ClientResponse.class, REQUEST);
    

    但我面临以下错误,

    com.sun.jersey.api.client.ClientHandlerException: java.io.IOException: Connection reset by peer
        at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:155)
        at com.sun.jersey.api.client.filter.HTTPBasicAuthFilter.handle(HTTPBasicAuthFilter.java:105)
        at com.sun.jersey.api.client.Client.handle(Client.java:652)
        at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
        at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
        at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:570)
        at org.springframework.jms.listener.adapter.MessageListenerAdapter.onMessage(MessageListenerAdapter.java:339)
        at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:535)
        at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:495)
        at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:467)
        at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323)
        at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:241)
        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1056)
        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1048)
        at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:947)
        at java.lang.Thread.run(Thread.java:748)
    Caused by: java.io.IOException: Connection reset by peer
        at sun.nio.ch.FileDispatcherImpl.readv0(Native Method)
        at sun.nio.ch.SocketDispatcher.readv(SocketDispatcher.java:43)
        at sun.nio.ch.IOUtil.read(IOUtil.java:278)
        at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:440)
        at weblogic.socket.NIOInputStream.readInternal(NIOInputStream.java:148)
        at weblogic.socket.NIOInputStream.read(NIOInputStream.java:90)
        at weblogic.socket.NIOInputStream.read(NIOInputStream.java:73)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
        at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
        at weblogic.net.http.MessageHeader.isHTTP(MessageHeader.java:310)
        at weblogic.net.http.MessageHeader.parseHeader(MessageHeader.java:232)
        at weblogic.net.http.HttpClient.parseHTTP(HttpClient.java:554)
        at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:688)
        at weblogic.net.http.SOAPHttpURLConnection.getInputStream(SOAPHttpURLConnection.java:41)
        at weblogic.net.http.HttpURLConnection.getResponseCode(HttpURLConnection.java:1545)
        at com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:253)
        at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:153)
        ... 17 more
    

    但是,如果我重新启动服务器,这个问题在一段时间内不会出现,而且会再次出现。有人遇到过类似的问题吗?我在google上找不到合适的解决方案。

    我在客户端使用Weblogic服务器,rest服务也部署在远程Weblogic服务器中。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Bala555    6 年前

    “通过对等端重置连接”是TCP/IP协议,相当于将手机重新挂回网络。这比只是不回答,让一个挂着更礼貌。但这并不是真正有礼貌的TCP/IP交谈者所期望的结果。

    检查 here