CXF的客户端包路径问题

说明:通过cxf根据WSDL来生成的客户端代码,代码的本身并没有引入CXF包中的东西,理论上移到weblogic(我们用WEBLOGIC来开发的webservice)是没任何问题的
但事实上移进去之后就会报下面一些异常。
   异常信息:

javax.xml.ws.soap.SOAPFaultException: java.lang.NullPointerException
 at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:156)
 at $Proxy119.computePSRStatisticByDept(Unknown Source)
 at cn.creaway.webgis.sggis.business.SpatialAnalysisServiceBusiness.computePSRStatisticByDept(SpatialAnalysisServiceBusiness.java:107)
 at cn.creaway.webgis.sggis.services.SpatialAnalysisService.computePSRStatisticByDept(SpatialAnalysisService.java:130)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        .........
Caused by: org.apache.cxf.binding.soap.SoapFault: java.lang.NullPointerException
 at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmarshalFault(Soap11FaultInInterceptor.java:75)
 at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:46)
 at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:35)
 at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
 at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:113)
        .........

 
原因分析:由于我在生成客户端代码时,配置的根目录为cn.creaway.webgis.proxy,而在发布时将生成的代码COPY到了cn.creaway.webgis.sggis.proxy下,结果导致了上面异常。打开生成的主要源文件,发现如图一,里面的classname还是指向原来的包目录,所以会抛此异常。

扩展:CXF客户端所需的最少的包commons-logging-1.1.1.jar,cxf-2.6,wsdl4j-2.6,XmlSchema-2.6就行了。

你可能感兴趣的:(webservice,java)