网络服务呼叫异常 [英] exception on web-service call

查看:102
本文介绍了网络服务呼叫异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Tomcat上部署了WS(jax-ws).

i have WS(jax-ws) deployed on tomcat .

一段时间后,我在尝试执行WS调用时遇到此异常

after some time i get this exception while trying to execute the WS call

什么是导致此问题的问题?作为jax-ws WS框架的新手 该应用程序正在与MySQL DB一起使用,但我认为它与问题无关

what could be the problem that cause this issue ? as im new to jax-ws WS framework the application is working with MySQL DB but i don't think its related to the problem

请咨询

May 31, 2013 12:31:06 PM com.sun.jersey.json.impl.provider.entity.JSONListElementProvider writeList
SEVERE: null
javax.xml.stream.XMLStreamException: ClientAbortException:  java.net.SocketException: Connection reset
    at com.sun.jersey.json.impl.writer.JsonXmlStreamWriter.flush(JsonXmlStreamWriter.java:189)
    at com.sun.jersey.json.impl.provider.entity.JSONListElementProvider.writeList(JSONListElementProvider.java:149)
    at com.sun.jersey.core.provider.jaxb.AbstractListElementProvider.writeTo(AbstractListElementProvider.java:223)
    at com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:306)
    at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1437)
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349)
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339)
    at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:708)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:636)
Caused by: ClientAbortException:  java.net.SocketException: Connection reset
    at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:319)
    at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:288)
    at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:98)
    at com.sun.jersey.spi.container.servlet.WebComponent$Writer.flush(WebComponent.java:315)
    at com.sun.jersey.spi.container.ContainerResponse$CommittingOutputStream.flush(ContainerResponse.java:145)
    at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:296)
    at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:140)
    at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:229)
    at com.sun.jersey.json.impl.writer.JsonXmlStreamWriter.flush(JsonXmlStreamWriter.java:187)
    ... 22 more
Caused by: java.net.SocketException: Connection reset
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
    at java.net.SocketOutputStream.write(SocketOutputStream.java:153)
    at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:741)
    at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:434)
    at org.apache.coyote.http11.InternalOutputBuffer.flush(InternalOutputBuffer.java:299)
    at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:981)
    at org.apache.coyote.Response.action(Response.java:183)
    at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:314)
    ... 30 more
May 31, 2013 12:31:06 PM com.sun.jersey.server.impl.application.WebApplicationImpl _handleRequest
SEVERE: The response of the WebApplicationException cannot be utilized as the response is already committed. Re-throwing to the HTTP container
javax.ws.rs.WebApplicationException: javax.xml.bind.JAXBException: ClientAbortException:  java.net.SocketException: Connection reset
 - with linked exception:
[javax.xml.stream.XMLStreamException: ClientAbortException:  java.net.SocketException: Connection reset]
    at com.sun.jersey.core.provider.jaxb.AbstractListElementProvider.writeTo(AbstractListElementProvider.java:225)
    at com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:306)
    at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1437)
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349)
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339)
    at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:708)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:636)
Caused by: javax.xml.bind.JAXBException: ClientAbortException:  java.net.SocketException: Connection reset
 - with linked exception:
[javax.xml.stream.XMLStreamException: ClientAbortException:  java.net.SocketException: Connection reset]
    at com.sun.jersey.json.impl.provider.entity.JSONListElementProvider.writeList(JSONListElementProvider.java:156)
    at com.sun.jersey.core.provider.jaxb.AbstractListElementProvider.writeTo(AbstractListElementProvider.java:223)
    ... 20 more
Caused by: javax.xml.stream.XMLStreamException: ClientAbortException:  java.net.SocketException: Connection reset
    at com.sun.jersey.json.impl.writer.JsonXmlStreamWriter.flush(JsonXmlStreamWriter.java:189)
    at com.sun.jersey.json.impl.provider.entity.JSONListElementProvider.writeList(JSONListElementProvider.java:149)
    ... 21 more
Caused by: ClientAbortException:  java.net.SocketException: Connection reset
    at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:319)
    at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:288)
    at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:98)
    at com.sun.jersey.spi.container.servlet.WebComponent$Writer.flush(WebComponent.java:315)
    at com.sun.jersey.spi.container.ContainerResponse$CommittingOutputStream.flush(ContainerResponse.java:145)
    at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:296)
    at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:140)
    at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:229)
    at com.sun.jersey.json.impl.writer.JsonXmlStreamWriter.flush(JsonXmlStreamWriter.java:187)
    ... 22 more
Caused by: java.net.SocketException: Connection reset
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
    at java.net.SocketOutputStream.write(SocketOutputStream.java:153)
    at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:741)
    at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:434)
    at org.apache.coyote.http11.InternalOutputBuffer.flush(InternalOutputBuffer.java:299)
    at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:981)
    at org.apache.coyote.Response.action(Response.java:183)
    at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:314)
    ... 30 more

推荐答案

您应该在Google上搜索"java.net.SocketException:连接重置"

You should google for "java.net.SocketException: Connection reset"

用于SocketException的Javadoc指出它是

The Javadoc for SocketException states that it is

抛出该错误表示基础协议中存在错误,例如TCP错误

Thrown to indicate that there is an error in the underlying protocol such as a TCP error

如果服务器端连接超时,则客户端将获得连接重置(服务器关闭了连接),如果客户端首先超时,则异常将为ConnectionTimeoutException.由于这是一个暂时性问题,因此解决方案是捕获并记录所有这些异常,然后重试.

If the connection times out on the server side, the client will get a connection reset (server closed the connection), if the client times out first the exception will be a ConnectionTimeoutException. Since this is a transient problem, the solution is to catch and log all this exceptions and retry again.

这篇关于网络服务呼叫异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆