Web Services axisweb服务挂起,因为没有返回connection-close

0ejtzxu1  于 2023-04-21  发布在  其他
关注(0)|答案(2)|浏览(175)

我有一个轴1.4(使用Spring)Web服务客户端使用PHP Web服务(运行在Apache上)。这在开发环境中运行得很好,但在生产环境中,代码执行在客户端收到SOAP响应后会直接挂起Axis库中的某个位置。我已经确定Wireshark从客户端Angular 来看的唯一区别是在开发环境中SOAP响应的HTTP头包含入口

Connection: close

我的假设是这是代码执行挂起的原因,因为Axis需要连接关闭头字段。
有什么我可以做的补救这通过配置客户端?如果没有,任何提示配置Apache + PHP关闭连接正确的赞赏.

brgchamk

brgchamk1#

尝试在应用程序中设置-Dhttp.keepAlive=false系统属性,如果可以在应用程序的其他部分禁用keep alive。这将防止Java内部的HttpClient类试图从打开的连接中急切地填充BufferedInputStream时出现某些挂起。
有关详细信息,请参见http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4479751
如果这有可能帮助您查看挂起客户端的堆栈跟踪,它应该看起来像这样:
java.lang.Thread.State:在www.example.com(SocketInputStream.java:129)在java.net.SocketInputStream.socketRead0(本机方法)java.net.SocketInputStream.read在java.io.BufferedInputStream.fill(BufferedInputStream.java:218)在java.io.BufferedInputStream.read1(BufferedInputStream.java:258)在java.io.BufferedInputStream.read(BufferedInputStream.java:317)- locked<0xab82fa30>(a java.io.BufferedInputStream)在sun.net.www.http. HttpClient. parseHTTPHeader(HttpClient.java:687)在sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)在sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1072)- locked<0xab82c838>(a sun.net.www.protocol.http.HttpURLConnection)
http.keepAlive设置基本上确保了HttpClient将始终发送一个'connection:如HeavyWave所建议的“关闭”。

2cmtqfgy

2cmtqfgy2#

您可以尝试发送Http Header“Connection:关闭“与您的请求。

相关问题