尝试运行wsdl2java生成的代码时出现NullPointerException

时间:2014-05-11 22:01:12

标签: jax-ws cxf

我正在尝试使用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,但答案只是使用旧版本......

这可能是配置问题吗?我的项目中是否需要任何配置文件?

1 个答案:

答案 0 :(得分:0)

此错误显然是由不兼容的库版本引起的。似乎至少由wsdl2java生成的WS客户端代码可以在Domino 9.0.1中运行,而无需从CXF添加任何jar(我已经在项目中添加了一些jar)。