今天解决了一个“诡异”的问题。
调用对方的webservice接口验证身份证是否匹配,同样的代码在windows环境下没有问题,但是部署到linux上后报出异常:
org.codehaus.xfire.fault.XFireFault: There must be a method name element. at org.codehaus.xfire.service.binding.WrappedBinding.readMessage(WrappedBinding.java:32) at org.codehaus.xfire.soap.handler.SoapBodyHandler.invoke(SoapBodyHandler.java:42)
网上搜了搜,基本都是一个答案,就是URL后缀带了“?wsdl”。但是我的代码没有带,说明不是这个问题。
然后怀疑是环境问题,可能是某个jar包存在多个不同的版本导致类冲突了。检查jar包是否冲突,可是包太多了,对比起来累。直接把windows下的tomcat放到linux上去运行,发现还是报上面的异常。
最后想到可能是访问https有限制,找我们网管问了问,果然是这个问题。最后开放了下权限就没有问题了。