1.Asix版本冲突的问题
项目是一个维护+二次开发的,有axis1.0(是之前开发的人没有删除掉)和axis1.4两个jar包,之前很少有人用到,所有没有发现问题
客户提供了wsdl文件,我用的是wsdl2Java生成的客户端调用代码,里面有两行代码:
oper.setStyle(org.apache.axis.enum.Style.WRAPPED);
oper.setUse(org.apache.axis.enum.Use.LITERAL);
enum应该是被认定成了关键字,这里采用axis1.0会报错的, 用axis1.4的jar包就没问题了
1. 工程中设置代理问题
需求中遇到webService要通过代理服务器调用,使用常用的Service. call 直接调用不成功(这也是为什么上面要使用wsdl2Java生成代码直接用SOAP方式调用的原因了,后来实验发现应该也是可以调用的,不过要手动设置各种参数==,还是用自动生成的规范一些)
另外,在方法调用前,要设置代理。可以用
AxisProperties.setProperty("http.proxyHost", proxyHost);
AxisProperties.setProperty("http.proxyPort", proxyPort)

在使用Axis1.4开发webService时,由于项目中同时存在Axis1.0的jar包,导致版本冲突。在通过wsdl2Java生成客户端代码并设置代理调用webService时,发现全局的AxisProperties代理设置无法清除,影响了其他不需代理的webService调用。为解决这个问题,采用ServletContextListener监听在项目启动时设置代理和例外列表,实现代理的统一管理和尽量减少代码改动。
最低0.47元/天 解锁文章
2628

被折叠的 条评论
为什么被折叠?



