6

アプリケーションにサードパーティの SOAP Web サービスを統合しています。WSDL は、サンプルの要求と応答が正常に機能する SOAPUI ツールで使用されます。

Apache Axis 1.3 と統合しようとすると、WSDL で WSDL2JAVA を試しました。次のエラーを受け取りました

java.io.IOException: エラー: org.apache.axis.wsdl.symbolTable.SymbolTable.faultsFromSOAPFault(SymbolTable.java:2858) のバインディング saveRegistration で、操作 "serviceFault" に要素 inFault "serviceFault" がありません.wsdl.symbolTable.SymbolTable.populateBindings(SymbolTable.java:2549) org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:744) org.apache.axis.wsdl.symbolTable.SymbolTable.add (SymbolTable.java:543) org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:518) で org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:495) でorg.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:361) at java.lang.Thread.run(不明なソース)

すでにこの問題に直面して解決した人はいますか?

4

2 に答える 2

15

これにはJIRAが開かれていると思います。

説明:

SOAP 1.2 バインディングで SOAP フォールトがある場合、フォールト要素が正しく抽出されず、エラーが発生する

 ERROR: Missing <soap:fault> element inFault "..." in operation "...", in binding ...

彼らの一時的な推奨事項は、コード行を追加して Axis1 を再コンパイルすることです...いや。

個人的には、wsdl ファイル (これは Axis 2 サービスであり、Axis 1.5 クライアントを持っています) をダウンロードし、次のすべての行の名前空間を編集しました。

     <wsdl:fault name="Exception">
        <soap12:fault use="literal" name="Exception"/>
     </wsdl:fault>

に:

     <wsdl:fault name="Exception">
        <soap:fault use="literal" name="Exception"/>
     </wsdl:fault>

ここで提案されているように。

ただし、長期的には Axis2 へのアップグレードが最適なソリューションです。この問題を解決した後、WSDL2JAVA が生成したコードにさらに多くのエラーが見つかりました。

于 2010-05-20T14:59:31.867 に答える