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