【问题标题】:NullPointerException when trying to run code generated by wsdl2java尝试运行 wsdl2java 生成的代码时出现 NullPointerException
【发布时间】: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,但答案只是使用旧版本...

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

【问题讨论】:

标签: jax-ws cxf


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 2021-07-18
    • 1970-01-01
    • 1970-01-01
    • 2014-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多