以下のコマンドを実行して、cxf(バージョン2.2.3、2.2.6、および2.7.0)を使用してwsdlからスタブとクライアントを生成しようとしました。
> wsdl2java.bat -p com.easynet.eordering.client -client http://expediter.staging.gis.easynet.com:7001/cds/services/eordering?wsdl
しかし、私は次のようなエラーが発生しています
WSDLToJavaエラー:一意でないボディパーツ!港では、ディスパッチを成功させるために、オペレーションはネットワーク上に固有のオペレーションサインを持っている必要があります。ポート{http://eordering.uk.easynet.net}eorderingPortSOAPで、操作"{http://eordering.uk.easynet.net}getAMList"および"{http://eordering.uk.easynet.net}getDCList "同じリクエスト本文ブロックを持っている{http://eordering.uk.easynet.net}userListRequest
このエラーがスローされた理由を知っています。私のwsdl操作では次のように記述されています。
<operation name="getDCList"><input message="tns:userListRequest"/><output message="tns:userListResponse"/></operation>
<operation name="getAMList"><input message="tns:userListRequest"/><output message="tns:userListResponse"/></operation>
両方の操作でuserListRequestパラメーターを再利用していましたが、両方の操作で同じパラメーター(userListRequest)が指定されているため、エラーがスローされたと思います。
wsdlに変更を加えずにこのエラーを回避する方法はありますか?(私が知っているように、操作のオーバーロードはwsdl 1.2からは許可されていませんが、入力パラメーターはオーバーロードしていますか?)。