0
Class Services.TestClass Extends (%RegisteredObject, %XML.Adaptor)
{

Property DS As %XML.DataSet;

}

そして、私の Web サービス クラス内の次の Web メソッド:

Method HelloWorld(name As %String) As Services.TestClass [ WebMethod ]
{
Quit ##class(Services.TestClass).%New()
}

これにより、次の XML が生成されます。

<s:complexType name="TestClass">
<s:sequence>
<s:element minOccurs="0" name="DS" type="s0:DataSet"/>
</s:sequence>
</s:complexType>
<s:complexType name="s_DataSet">
<s:sequence>
<s:element ref="s:schema"/>
<s:any/>
</s:sequence>
</s:complexType>
</s:schema>

s0:DataSet は s_DataSet ではなく DataSet を指しているため、s_DataSet の名前は実際には単なる DataSet である必要があると思います

サービスを使用するクライアントを使用すると、次のエラーが表示されます: エラー: タイプ 'DataSet@ http://tempuri.org ' が見つかりません。(SoapUI から)

DataSet プロパティを TestClass から取り出して直接返すと、すべて問題ありません。何が起こっている?

4

1 に答える 1

0

あなたが私たちに示しているのは、WebService (クラス) の WSDL (の一部) です。s_Dataset は単なる名前であり、スキーマ部分はスキーマ要素を参照します。

webService の呼び出し:

... Serivices.Client.cls?soap_method=HelloWorld&name=zzz

生成するだけです:

<SOAP-ENV:Envelope>
    <SOAP-ENV:Body>
        <HelloWorldResponse>
            <HelloWorldResult/>
        </HelloWorldResponse>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

エラーなし

于 2013-02-25T23:18:00.620 に答える