1

次のように定義された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#プロキシを作成したように、できればできるだけ簡単に。

4

0 に答える 0