CXF的客户端包路径问题

本文分析了使用 CXF 根据 WSDL 生成的客户端代码,在 WebLogic 中部署时出现 NullPointerException 异常的原因。指出问题源于客户端代码包路径变更导致的类加载错误,并给出了解决方案。
摘要由CSDN通过智能技术生成

说明:通过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就行了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值