我正在开发基于WSDL的Web服务并使用Apache Axis 2.我不是Web服务方面的专家,我正在与之合作的人声称为了使这个特定的Web服务能够工作两个调用必须在同一个连接上进行,即使用http keep-alive(基本上是一个“提交事务”方法,需要在“保存”方法之后调用)。这似乎是一个非常常见的问题,但我没有在谷歌上找到任何东西。
我想知道是否有办法明确告诉Axis这样做。此外,我如何验证是否确实在同一连接上进行了两次呼叫。我想像wireshark这样的一些HTTP监控软件可以告诉我这个,但我还没有安装它。
答案 0 :(得分:1)
与你合作的人是错的。即使可以通过使用keep-alive在单个TCP连接上处理多个请求来优化HTTP,这种优化对于调用者或被调用者应该是透明的,例如,如果客户端在保持连接的情况下在彼此之后发出两个请求,或者它是否使用两个单独的连接,则无关紧要。
Java库(客户端上的HttpURLConnection和服务器端的servlet API)甚至不提供对此信息的访问,因此使用软件无法知道HTTP请求的实际执行方式。
答案 1 :(得分:0)
您可以使用nmap link text查看每个端口上实际运行的内容。
但是如果你同时进行2次调用,则axis2将抛出端口已经绑定错误。任何端口都无法同时处理2个请求(我的意见)。也许你可以排队并连续进行。但也要与其他消息来源确认一下。