Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 春季天气预报及「;试图保存SOAPPart时出错;_Java_Web Services_Spring Ws_Stress Testing - Fatal编程技术网

Java 春季天气预报及「;试图保存SOAPPart时出错;

Java 春季天气预报及「;试图保存SOAPPart时出错;,java,web-services,spring-ws,stress-testing,Java,Web Services,Spring Ws,Stress Testing,我在Weblogic 10服务器上有一些web服务。每一个都是更大系统的一部分。在本地和qa环境中运行,该系统工作完美,响应速度快,符合预期。一切看起来都很好 在投入生产之前,我们将对系统进行压力测试,从而了解在响应时间变大之前我们可以承受多大的负载。当测试web服务(例如,使用前端或SOAPUI)时,我们遇到了特定的负载(例如,每秒有许多回复或类似的情况,我不确定到底是什么触发了系统失败),我们得到了下面列出的错误。我一点儿也不知道为什么。几秒钟后,系统再次完美地回复,所以我猜这与请求的数量有

我在Weblogic 10服务器上有一些web服务。每一个都是更大系统的一部分。在本地和qa环境中运行,该系统工作完美,响应速度快,符合预期。一切看起来都很好

在投入生产之前,我们将对系统进行压力测试,从而了解在响应时间变大之前我们可以承受多大的负载。当测试web服务(例如,使用前端或SOAPUI)时,我们遇到了特定的负载(例如,每秒有许多回复或类似的情况,我不确定到底是什么触发了系统失败),我们得到了下面列出的错误。我一点儿也不知道为什么。几秒钟后,系统再次完美地回复,所以我猜这与请求的数量有关

任何想法或提示都将不胜感激!我在这里迷路了,所以请-任何东西都会有帮助的

我们正在运行:Weblogic 10.3.2、Spring 2.5.6(出于架构原因,我们无法升级)、Spring WS 1.5.9(出于架构原因,我们无法升级)和Stripes 1.5.4

<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尝试写入断开连接(或不可用)的套接字。造成这种情况的一个常见原因是,客户端在等待服务器回复时已断开连接

我建议:

  • 检查您的客户是否在收到响应之前等待太长时间,这可能导致其断开连接

  • 检查操作系统是否在分配套接字时出现问题。使用“netstat”或其他监视工具(如Windows上的TCPView)检查打开的套接字数量(大多数操作系统对每个用户或全局允许的套接字数量施加限制)

  • 确保在测试期间绝对没有网络错误(如果在本地主机上测试,则不应出现这种情况,否则需要确保网络设备(路由器、交换机、其他计算机)没有丢弃连接或数据包。可能在流量负载较高时会发生这种情况

  • 确保没有线程冲突会导致web服务使用或关闭其他请求的套接字(这是一种罕见的情况,尤其是在使用Spring时)

  • 检查此线程和“软件导致的连接中止”的其他可能原因(请注意,此问题可能特定于应用程序服务器和操作系统)


  • 希望这能有所帮助。

    在调试了很多之后,我发现问题是由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环境时,我们有一台专用机器进行压力测试-我可以在本地主机上重现问题。