次のように定義されたxsd:anyTypeの配列として定義された引数を持つWebServiceを呼び出す必要があります。
<complexType name='ArrayOfAnyType'>
<complexContent>
<restriction base='soapenc:Array'>
<attribute ref='soapenc:arrayType' wsdl:arrayType ='xsd:anyType[]'/>
</restriction>
</complexContent>
</complexType>
また、戻りタイプも次のようにxsd:anyTypeタイプです。
<message name='RunTask.runTaskInput'>
<part name='taskName' type='xsd:string'/>
<part name='args' type='ns2:ArrayOfAnyType'/>
</message>
<message name='RunTask.runTaskOutput'>
<part name='return' type='xsd:anyType'/>
</message>
WebServiceは実際には多くの異なるタスクを実行できるサーバーであり、サーバーのユーザーがタスクを構成できます(各タスクには固有の引数があります)。
これまでは、MicrosoftのWSDLユーティリティを使用して、このWebサービスのC#クライアントプロキシを生成できました。生成されたC#コードは、すべての引数を.Net'オブジェクト'型に正しくキャストすれば、簡単に使用できます。
ここで、このWebサービス用のJavaクライアントを生成する必要があります(正直なところ、私はJavaの初心者にすぎません)。http://ws.apache.org/muse/docs/2.0.0/tutorial/01-install-muse.htmlで見つけたWSDL2JAVAというユーティリティがあるようです。しかし、実行すると、次のエラーが発生します。
警告:[ID='NoWSRPSchema']WS-RPスキーマが見つかりません。java.lang.RuntimeException:[ID ='NotDocLiteral']WSDL操作'runTask'は、SOAP本文に複数のメッセージ部分を持つメッセージを定義するため、doc-literalではありません。doc-literalメッセージのSOAP本文には、0個以上の子要素(パラメーター)を持つ1つのルート要求要素(操作名を含む)が含まれている必要があります。org.apache.muse.tools.inspector.ResourceInspector.getInputName(ResourceInspector.java:486)at org.apache.muse.tools.inspector.ResourceInspector.createJavaMethod(ResourceInspector.java:329)at org.apache.muse.tools .inspector.ResourceInspector.getOperations(ResourceInspector.java:570)at org.apache.muse.tools.inspector.ResourceInspector.run(ResourceInspector.java:
重大:[ID='CodeGenFailed']コード生成に失敗しました。以下の例外情報を参照してください。
例外がキャッチされました:[ID ='NotDocLiteral']WSDL操作'runTask'は、SOAP本文に複数のメッセージ部分を持つメッセージを定義するため、doc-literalではありません。doc-literalメッセージのSOAP本文には、0個以上の子要素(パラメーター)を持つ1つのルート要求要素(操作名を含む)が含まれている必要があります。
xsd:anyTypeはここではサポートされていないので、私は私に見えます。
このWebサービスのプロキシクラスを生成する簡単な方法は何ですか?WSDLが私のためにC#プロキシを作成したように、できればできるだけ簡単に。