我很难使用Axis2框架进行基于SOAP的集成,以便从Server WSDL生成客户端存根。方案如下:
我已经尝试了在本论坛中提到的所有内容,但没有任何问题。 例如 -
MultiThreadedHttpConnectionManager httpConnectionManager = new MultiThreadedHttpConnectionManager();
HttpClient httpClient = new HttpClient(httpConnectionManager);
ServiceClient serviceClient = stub._getServiceClient();
Options opts = stub._getServiceClient().getOptions();
opts.setTo(new EndpointReference(prop.getProperty("target_end_point_url")));
opts.setProperty(HTTPConstants.REUSE_HTTP_CLIENT, Constants.VALUE_TRUE);
opts.setProperty(HTTPConstants.CACHED_HTTP_CLIENT, httpClient);
serviceClient.setOptions(opts);
stub._setServiceClient(serviceClient);
同样,我也尝试了很多其他选择。但它根本没用。
答案 0 :(得分:0)
面对完全相同的问题。 以下步骤解决了这个问题。 1.使用HttpClient,执行登录。不要使用存根对象来执行登录。 2.使用Location Header URL创建新的stub对象,即stub = new Stub(locationURL)。 (应保留现有选项设置。) 3.存在默认超时,服务器通过该超时断开TCP连接。在我的情况下它是50秒。因此,只要我在步骤1中执行登录,我就会每40秒执行一次计时器,使用相同HttpClient对象的HeadMethod向新的位置URL发送空请求。