【发布时间】:2014-05-11 22:01:12
【问题描述】:
我正在尝试使用 Apache CXF 2.7.11 构建一个 WS 客户端。我使用wsdl2java 工具创建了示例类。我有一个 Eclipse 项目:
- wsdl2java生成的所有代码
- 已安装 /lib 中的所有 jar 文件。
我基本上遵循这个教程:http://cxf.apache.org/docs/developing-a-consumer.html
当我运行wsdl2java 创建的示例代码时,我得到了这个错误:
Exception in thread "main" java.lang.NullPointerException
at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:98)
at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:204)
at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:149)
at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:101)
at javax.xml.ws.Service.<init>(Service.java:67)
at com.twinfield.Session.<init>(Session.java:46)
at com.twinfield.SessionSoap_SessionSoap_Client.main(SessionSoap_SessionSoap_Client.java:48)
使用调试器,我发现有问题的 null 是由CXFBusImpl.getExtension(WSDLManager.class) 引起的。 WSDLServiceFactory.java 中的第 98 行内容如下:
definition = getBus().getExtension(WSDLManager.class).getDefinition(url);
我认为问题出在我的 wsdl 位置上,但根据上述情况可能不是这样吗?我已经尝试将本地文件和 URL 作为 wsdl2java 的 -wsdlLocation 开关的值。 (目前我根本不用那个参数)
网络搜索只发现了 2.0 和 2.4 版的一些非常老的问题。这里有一个类似的问题:Null Pointer Exception in WSDServiceFactory - Apache CXF libs,但答案只是使用旧版本...
这可能是配置问题吗?我的项目中是否需要任何配置文件?
【问题讨论】:
-
我在stackoverflow.com/questions/30578380/…发现了类似的问题检查可能的解决方案