Java 春季天气预报及「;试图保存SOAPPart时出错;
我在Weblogic 10服务器上有一些web服务。每一个都是更大系统的一部分。在本地和qa环境中运行,该系统工作完美,响应速度快,符合预期。一切看起来都很好 在投入生产之前,我们将对系统进行压力测试,从而了解在响应时间变大之前我们可以承受多大的负载。当测试web服务(例如,使用前端或SOAPUI)时,我们遇到了特定的负载(例如,每秒有许多回复或类似的情况,我不确定到底是什么触发了系统失败),我们得到了下面列出的错误。我一点儿也不知道为什么。几秒钟后,系统再次完美地回复,所以我猜这与请求的数量有关 任何想法或提示都将不胜感激!我在这里迷路了,所以请-任何东西都会有帮助的 我们正在运行:Weblogic 10.3.2、Spring 2.5.6(出于架构原因,我们无法升级)、Spring WS 1.5.9(出于架构原因,我们无法升级)和Stripes 1.5.4Java 春季天气预报及「;试图保存SOAPPart时出错;,java,web-services,spring-ws,stress-testing,Java,Web Services,Spring Ws,Stress Testing,我在Weblogic 10服务器上有一些web服务。每一个都是更大系统的一部分。在本地和qa环境中运行,该系统工作完美,响应速度快,符合预期。一切看起来都很好 在投入生产之前,我们将对系统进行压力测试,从而了解在响应时间变大之前我们可以承受多大的负载。当测试web服务(例如,使用前端或SOAPUI)时,我们遇到了特定的负载(例如,每秒有许多回复或类似的情况,我不确定到底是什么触发了系统失败),我们得到了下面列出的错误。我一点儿也不知道为什么。几秒钟后,系统再次完美地回复,所以我猜这与请求的数量有
<11-11-2011 08:43:58 CET> <Error> <HTTP> <BEA-101017> <[ServletContext@11242741[app:salesoverview-ws-web module:salesoverview-ws-web path:/salesoverview-ws-web spec-version:2.5], request: weblogic.servlet.internal.ServletRequestImpl@1fbbfc5[POST /salesoverview-ws-web/services HTTP/1.1 Accept-Encoding: gzip,deflate Content-Type: text/xml;charset=UTF-8 SOAPAction: "" User-Agent: Jakarta Commons-HttpClient/3.1 Content-Length: 425]] Root cause of ServletException.
org.springframework.ws.soap.saaj.SaajSoapMessageException: Could not write message to OutputStream: Error attempting to save SOAPPart. java.io.IOException: java.net.SocketException: Software caused connection abort: socket write error; nested exception is javax.xml.soap.SOAPException: Error attempting to save SOAPPart. java.io.IOException: java.net.SocketException: Software caused connection abort: socket write error
at org.springframework.ws.soap.saaj.SaajSoapMessage.writeTo(SaajSoapMessage.java:169)
at org.springframework.ws.transport.AbstractWebServiceConnection.send(AbstractWebServiceConnection.java:45)
at org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport.handleConnection(WebServiceMessageReceiverObjectSupport.java:97)
at org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter.handle(WebServiceMessageReceiverHandlerAdapter.java:57)
at org.springframework.ws.transport.http.MessageDispatcherServlet.doService(MessageDispatcherServlet.java:230)
Truncated. see log file for complete stacktrace
Caused By: javax.xml.soap.SOAPException: Error attempting to save SOAPPart. java.io.IOException: java.net.SocketException: Software caused connection abort: socket write error
at weblogic.xml.saaj.SOAPMessageImpl.SOAPPart_writeTo(SOAPMessageImpl.java:1011)
at weblogic.xml.saaj.SOAPMessageImpl.writeTo(SOAPMessageImpl.java:816)
at org.springframework.ws.soap.saaj.Saaj13Implementation.writeTo(Saaj13Implementation.java:292)
at org.springframework.ws.soap.saaj.SaajSoapMessage.writeTo(SaajSoapMessage.java:165)
at org.springframework.ws.transport.AbstractWebServiceConnection.send(AbstractWebServiceConnection.java:45)
Truncated. see log file for complete stacktrace
>
通过挖掘BEA-101017,我从Weblogic错误dok中找到了一些关于的信息-尽管这对我没有帮助:
错误:[上下文]ServletException的根本原因
Description:[上下文]ServletException的根本原因
服务请求时捕获应用程序容器
原因:Web应用程序容器捕获到意外异常
操作:检查异常以获取确切的错误消息
假设示例中的web服务不访问其他web服务(因此上述跟踪对应于发送响应的web服务): 似乎您的web服务正在通过SAAJ尝试写入断开连接(或不可用)的套接字。造成这种情况的一个常见原因是,客户端在等待服务器回复时已断开连接 我建议:
希望这能有所帮助。在调试了很多之后,我发现问题是由DB2问题引起的——我们碰到了数据库的一个角落,它触发了内部堆栈溢出,然后被验证到Dao并继续验证到SOAP部分(由于Dao中的Spring JDBC模板,这使得检测更加困难) 长话短说,问题是一个未捕获的异常,Spring WS导致了“SaajSoapMessageException”。提示来自“软件导致的连接中止:套接字写入错误”,但发生在WS端(不是客户端,也不是客户端/服务器之间的通信) 提示:用try/catch和catch异常包围数据库,这样就能够找到抛出的确切异常。在我的例子中,它抛出了一个DB2异常(“SQLCode-1218”),这通常在资源耗尽时使用(例如,数据源连接).I我的例子是DB2不喜欢的SQL,而且在加载时确实不喜欢。我无法解释它,但它与DB2s自己的内部资源有关-哎呀,想想看!)
感谢jjmontes提供的提示和指针,但这不是本例中的问题。1。客户没有等很长时间,这是2女士的事。我来看看。3.这里不应该有任何东西,都在同一台服务器上运行。4.我用的是Spring,不过我要看看。5.我已经看到了,但是我正在挖掘更多。如果您在与服务器相同的机器上运行负载测试工具,那么我会尝试移动它。我们总是不鼓励从您正在测试的同一台机器生成负载-即使它不会导致这样的错误,也不会产生真实的测试数据。没错,但问题出现在测试我们的qa环境时,我们有一台专用机器进行压力测试-我可以在本地主机上重现问题。