私たちのアプリケーションは SOAP API を提供します。私たちの wsdl 開始行は次のようなものです
<wsdl:definitions name='ControlDServices' ... xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' ...
これは通常は問題なく動作しますが、ある顧客から、提供された wsdl を使用して NetBeans で SOAP API を使用しようとすると、次のエラーが発生したという苦情が寄せられました。
Web Service can not be created by JAXWS:wsimport utility.
Reason: invalid extension element: "soap:body" (in namespace "http://schemas.xmlsoap.org/wsdl/soap/")
これは、次を実行することで簡単に再作成できます。
wsimport -d . -extension -Xnocompile -keep -s . -verbose <our wsdl file>
エラーが発生します:
[ERROR] invalid extension element: "soap:body" (in namespace "http://schemas.xmlsoap.org/wsdl/soap/")
unknown location
私たちのサポートは、xmlns:soap 定義をhttp://www.w3.org/2001/12/soap-envelope/を使用するように変更することで問題が解決することを発見しましたが、これには私たちの製品の変更が必要であり、ほとんどの場所と矛盾しています。 wsdl:definitions ファイルが定義されている Web を参照してください。その上、そのURIはwsdlではなくsoap-envelopに属しているようで、一般的なURIではなく特定の日付のものでもあります。
パラメータを変更するなど、wsdl を変更せずに NetBeans / wsimport の問題を解決する方法はありますか? いいえ、変更が必要な場合は、http://www.w3.org/2001/12/soap-envelope/に変更するのが賢明ですか、それとも別のものを使用する必要がありますか?
ありがとう
_