Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.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 使用Axis重用SOAP客户端_Java_Soap_Axis - Fatal编程技术网

Java 使用Axis重用SOAP客户端

Java 使用Axis重用SOAP客户端,java,soap,axis,Java,Soap,Axis,我正在使用ApacheAxis向服务发出SOAP请求。我注意到,有时需要几秒钟才能得到响应,即使目前服务只是一个简单的回音。所以我想知道建立连接是否需要时间,即使服务器没有HTTP/1.1连接保持活动状态 是否应该在请求之间以某种方式重用客户端,或者是否可以为每个请求获得一个新的客户端 这是我的密码。我应该在请求之间保留定位器和/或客户端,还是可以忘记它 MyExampleServiceLocator locator = new MyExampleServiceLocator(); MyExam

我正在使用ApacheAxis向服务发出SOAP请求。我注意到,有时需要几秒钟才能得到响应,即使目前服务只是一个简单的回音。所以我想知道建立连接是否需要时间,即使服务器没有HTTP/1.1连接保持活动状态

是否应该在请求之间以某种方式重用客户端,或者是否可以为每个请求获得一个新的客户端

这是我的密码。我应该在请求之间保留
定位器
和/或
客户端
,还是可以忘记它

MyExampleServiceLocator locator = new MyExampleServiceLocator();
MyExampleServicePort client = locator.getMyExampleServicePort(url);
MyExampleRequest request = buildMyExampleRequest();
MyExampleResponse response = client.send(request);   // This takes time sometimes
  • 对于复杂的服务,实例化定位器的成本可能很高。因此,您应该尽可能多地重用它。定位器应该是线程安全的,所以您可以将它们作为单例使用。但是请注意,在轴1.4中,定位器至少存在一个螺纹安全问题:
  • 创建一个新的存根(客户端)成本较低,但重用存根是没有问题的。它们还应是线程安全的(至少在Axis 1.4中是如此),但以有状态方式使用存根的场景除外(例如HTTP会话)
  • Axis的默认HTTP传输仅支持HTTP 1.0,并为每个请求创建新连接

谢谢您提供详细信息。太好了。嘿,我的多线程ajax1应用程序有一些并发问题。我想知道你上面的“重用存根是没有问题的”评论。我认为我的问题与我的jms侦听器共享一个客户机有关,根据我所看到的,它们不是线程安全的。看这里: