1

簡単なヘッダー クラスを作成しました。

Class Sample.Headers Extends %SOAP.Header
{
    Parameter NAMESPACE = "http://tempuri.org";
    Property UserName As %String;
}

SOAPHEADERSWeb サービスでは、パラメーターに正しい名前空間を設定するようにしました。

Parameter SOAPHEADERS = "UserName:Sample.Headers";

SoapUI を使用して次の XML を送信します。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org">
   <soapenv:Header>
       <tem:UserName>This is the header</tem:UserName>
   </soapenv:Header>
   <soapenv:Body>
      <tem:Test>
         <!--Optional:-->
         <tem:argAge>10</tem:argAge>
      </tem:Test>
   </soapenv:Body>
</soapenv:Envelope>

次のエラーが表示されます。

エラー #6254: タグが必要です。XML 入力、これはヘッダーです。UserName の子として適切な形式ではありません (3 行目の 18 文字目で終了)。

UserName が正しく設定されるための XML の正しい形式は何ですか?

4

2 に答える 2

1

変更する必要があるだけです:

Property UserName As %String;

Property UserName As %String(XMLPROJECTION = "CONTENT", MAXLEN = 50);
于 2012-12-04T16:15:12.693 に答える
0

ここで例を見てみましょう: http://www.w3schools.com/soap/soap_header.asp

: Header 要素の直接の子要素はすべて名前空間で修飾する必要があります。

この例では、XML の形式が少し異なるようで、名前空間を Header プロパティ "Trans" の属性として入れ子にしています (この例では)。ストレッチかもしれませんが、あなたのリクエストには名前空間がこのように明示的に設定されていないことがわかります.

于 2012-11-12T18:41:41.927 に答える