说明:通过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就行了。
分享到:
相关推荐
CXF客户端 介绍 有几个不同的插件可以使用 grails 来使用 SOAP Web 服务,但目前没有一个可以处理缓存端口引用的问题。 ws-client 插件可以工作,但它的局限性在于它如何创建和使用 wsdl。 它依赖于代理类和服务的...
wsdl2java -frontend jaxws21 -d (这里是你要生成代码的位置) (这里是你所放WSDL的文件的路径),例如:wsdl2java -frontend jaxws21 -d E:\CXF -encoding GBK E:\renewalQuery.wsdl 然后点击回车,就可以生成了
wsdl2java -p 包名 -d 生成代码存放目录 xml的路径 wsdl2java的用法: -p 指的是wsdl的命名空间,也就是包名 -d 指的是要生成代码所存放的目录 -client 生成客户端测试webService的代码 -...
spring + cxf + restful + soap 方便初学者很快上手。 注解描述 @Path注解的值是一个相对的URI路径,这个路径指定了该Java类的位置,例如/helloworld。在这个URI中可以包含变量,例如可以获取用户的姓名然后作为参数...
testWebService 是webservice的服务端 zxntest 是webservice 的客户端(很大一部分jar包无效) http://localhost:8080/testWebService/webservice/webservice?wsdl 测试路径
用于生成webservice客户端 解压进入bin目录 1、执行cmd 2、执行wsdl2java -d D:\11//生成路径 -p com.web.GetPatientInfo//包名 -client D:\messageServer.xml//文件路径也可以是wsdl
导入CXF jar 包支持 引入 log4j.properties 文件 @WebService使用类上面,标记类是webservice服务提供对象 @WebMethod使用在方法上面,标记方法是webservice服务提供方法 WS整合spring服务器端开发...
本例为Maven工程,借助cxf-codegen-plugin插件,将在代码编译期间生成Java代码,开发工具IDE需要设置target\generated\cxf为源代码路径 启动服务端,进入CxfServer目录, 运行端口8484,可在application.properties...
-- 这三行的配置不用去检查对应的路径下是否有对应的文件,因为cxf会自动生成的--> <import resource="classpath:META-INF/cxf/cxf.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /...
基于类路径扫描的JAX-RS客户端代理的简单设置。 支持 高枕无忧 CXF 球衣 设置 为了开始和运行,只需将工件添加到您的Maven / Gradle构建中。 <groupId>com.github.jmnarloch</groupId> <artifactId>spring-jax-...
客户端服务代码。 路径 是 WSDL 位置的属性,可以是在线或本地源。 要执行此操作,您可以将其添加到项目的 pom.xml 构建和属性中。 之后在控制台(终端或命令提示符)你可以用这个命令运行这个 maven 项目。 $ mvn ...
JAX-RS:使用注解来简化web服务的客户端和服务器端的开发。 数据库: Druid 工具: HttpWatch是强大的网页数据分析工具 firebug spring boot: groovy: maven gradle RESTful一种软件架构模式 log4j kafka zookeeper ...
平台服务层的调用是通过RESTAPI进行的,由于REST的特点,通过在URI中添加资源路径以及版本信息,很方便地能够实现平台的平滑升级以及数据兼容性问题。 平台服务层实现的都是共通的服务,服务之间是独立的,而且...