3

コードに問題があります。WSDL ファイルは、apache cxf の wsdl2java によって解析されました。今、私は Web サービスとの接続を取得しようとしていますが、まだヌル ポインター例外が発生しています。

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 ファイルをダウンロードした場所を指しています。jar を構築するために、次のような依存関係を持つ Maven を使用しています。

  • jaxws-api
  • cxf-rt-トランスポート-http
  • cxf-rt-フロントエンド-jaxws
  • cxf-rt-bindings-soap

deps を含む jar は、maven-assembly-plugin によって作成されます

wsdlファイルはそこからダウンロードされているため、そこに存在することを確認してください。

助言がありますか?助けてくれてありがとう。

ところで。私が見つけた解決策のどれも私にとってうまくいかないのは重複した質問ではありません。

4

3 に答える 3

3

gradleshadowJarを使用して同じ問題に遭遇しました。解決策は、 bus-extensions.txtサービス ファイルを META-INF/cxf/ ディレクトリに明示的にマージすることです。

shadowJar {
  archiveName = 'application.jar'
  mergeServiceFiles{
    path='META-INF/cxf'
  }
}
于 2016-08-26T21:52:59.067 に答える
0

解決策は非常に簡単です。Apache CXF lib のバージョンを古いものに変更しただけで動作します。おそらく私の設定に問題があったか、Apache CXF にバグがあったのでしょう。

したがって、解決策として、提供されているライブラリの古いバージョンを確認してください。

于 2012-07-19T11:08:28.330 に答える