2012-07-11 34 views
1

我的代碼存在問題。 WSDL文件由apache cxf的wsdl2java解析。現在我試圖獲得與Web服務的連接,但仍然收到空指針異常。WSDServiceFactory中的空指針異常 - Apache CXF庫

Exception in thread "main" java.lang.NullPointerException 
     at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:92) 
     at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:203) 
     at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:147) 
     at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:97) 
     at javax.xml.ws.Service.<init>(Service.java:56)... 

url地址指向我已經下載了WSDL文件的地方。爲構建罐子我使用Maven與相關性,如:

  • JAXWS-API
  • CXF-RT-運輸-HTTP
  • CXF-RT-前端-JAXWS
  • CXF-RT-綁定-soap

罐子DEPS由Maven的組裝插件

創建可以肯定的,因爲它已經從那裏下載的WSDL文件存在那裏。

有什麼建議嗎?謝謝你的幫助。

順便說一句。這不是重複的問題,我發現的解決方案不適合我。

回答

1

解決方案非常簡單,我只是將Apache CXF lib的版本更改爲舊版本,並且它可以工作。所以可能我在配置中遇到了問題,或者Apache CXF有一個錯誤。

因此,作爲解決方案,只需檢查提供的lib的舊版本。

0

我遇到了同樣的問題,使用shadowJargradle。解決方案是明確合併bus-extensions.txt服務文件在META-INF/cxf /目錄中:

shadowJar { 
    archiveName = 'application.jar' 
    mergeServiceFiles{ 
    path='META-INF/cxf' 
    } 
}