Differences between revisions 1 and 2
Revision 1 as of 2005-04-05 10:45:25
Size: 1655
Comment: Axis Wiki in Japanese
Revision 2 as of 2009-09-20 22:48:52
Size: 1655
Editor: localhost
Comment: converted to 1.6 markup
No differences found!

質問: 自分のWebサービスのコードの中で、どのようにしてヘッダを取得/設定するのですか?

回答: MessageContextオブジェクトを使用します。

ここにいくつかのサンプルコードを挙げます

  // 現在の MessageContext を取得します
  MessageContext ctx = org.apache.axis.MessageContext.getCurrentContext();
  // リクエストの SOAP エンベロープを取得します
  SOAPEnvelope env = ctx.getRequestMessage().getSOAPEnvelope();
  // ヘッダを取得します
  SOAPHeaderElement soapHeaderElement = env.getHeaderByName(headerNamespace, headerName);
  // ヘッダの値を取得します。複雑な型である可能性もあります
  Object value = soapHeaderElement.getObjectValue();

質問: クライアントへのレスポンスの中にどのようにしてヘッダを設定するのですか?

回答: SOAPHeaderElementを作成し、レスポンスメッセージのSOAPEnvelopeに追加します。

   // 現在の MessageContext を取得します
   MessageContext ctx = org.apache.axis.MessageContext.getCurrentContext();
   // リクエストの SOAP エンベロープを取得します
   SOAPEnvelope env = ctx.getResponseMessage().getSOAPEnvelope();
   // SOAP ヘッダオブジェクトを作成します
   SOAPHeaderElement headerElement = 
       new org.apache.axis.message.SOAPHeaderElement(headerNamespace, headerName, headerValue);
   headerElement.setMustUnderstand(mustUnderstand);
   // ヘッダを設定します
   env.addHeader(headerElement);

ja/axis/WSDLJavaHeaderServer (last edited 2009-09-20 22:48:52 by localhost)