我正在嘗試使用Apache CXF 2.7.11構建WS客戶端。我使用wsdl2java
工具創建了示例類。我有一個Eclipse項目:嘗試運行由wsdl2java生成的代碼時出現NullPointerException
- 所有的代碼從已安裝的/ lib目錄
- 所有jar文件由WSDL2Java的生成。
我基本上是按照本教程: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)
使用調試器,我發現空有問題是由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,但答案只是使用舊版本...
這可能是一個配置問題?我的項目中是否需要任何配置文件?
我發現類似的問題檢查可能的解決方案http://stackoverflow.com/questions/30578380/error-after-upgrading-camel-cxf-to-2-15-2-class-cast-exception/42023591# 42023591 –