AXIS2使用问题解决点滴

1、在调用第三方的WEB SERVICE过程中(双方都是AXIS2),发现如下问题

     当数据量大时,第三方返回的ContentType[在HTTP头内]是XML

     当数据量小时,第三方返回的ContentType[在HTTP头内]是TEXT

这导致默认情况下,AXIS2 1.4生成的客户端在处理数据量小时产生错误,报ContentType类型不对,这是由于在SOAP1.2中,强制要求XML,但1.1不需要,因此,解决该问题的方式如下:

 

stub._getServiceClient().getOptions().setSoapVersionURI(org.apache.axiom.soap.SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);

这样就不会有强制校验了

 

2、AXIS2生成的客户端,调用多次后,发现有许多close_wait状态的连接。网上有很多类似的报告:

http://mail-archives.apache.org/mod_mbox/ws-axis-user/200509.mbox/%[email protected]%3E

 

在AXIS2中,解决该问题,只需要设置一个选项即可:

 stub._getServiceClient().getOptions().setProperty(HTTPConstants.REUSE_HTTP_CLIENT, true);

 

由于AXIS2中使用的是apache的httpclient组件,该组件默认情况会缓存连接已供重用,因此,如果不设上述选择,即使设置

了HTTPConstants.AUTO_RELEASE_CONNECTION选项或手功clearup也无济于用。

 


       

你可能感兴趣的:(java开源,soap,xml,service,apache,web,c)