Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

詳細は、「2.17 SOAP Agent メッセージ・ハンドラー」を参照してください。

Apache Axisを使用すると、カスタム・メッセージ・ハンドラーを作成して配布することができます。

これらのハンドラーでは、送信前にSOAP XMLメッセージに追加処理を行うことができます。

サービスの構成名を決めるには、LOG4Jのログを有効にしてSOAP Agentサービスを一度実行します。

...

Wiki Markup詳細は、「2.17 SOAP Agent メッセージ・ハンドラー」を参照してください。 Apache Axisを使用すると、カスタム・メッセージ・ハンドラーを作成して配布することができます。 これらのハンドラーでは、送信前にSOAP XMLメッセージに追加処理を行うことができます。 サービスの構成名を決めるには、LOG4Jのログを有効にしてSOAP Agentサービスを一度実行します。 log4j.logger.org.apache.axis=DEBUG, FILE FILE 
log4j.additivity.org.apache.axis=false  


LOG4J.TXTファイルでsetTargetService文字列を検索します。括弧内の値が構成サービス名です。 \

[DEBUG

...

]

...

[message.SOAPBody

...

]

...

addBodyElement

...

-

...

Adding

...

body

...

element

...

to

...

message...

...


[DEBUG

...

]

...

[client.Call

...

]

...

invoke

...

-

...

Enter:

...

Call::invoke()

...


[DEBUG

...

]

...

[axis.MessageContext

...

]

...

setTargetService

...

-

...

MessageContext:

...

setTargetService(MyServicePort)


構成ファイルに配布サービス・エントリーを追加します。

ハンドラー・タイプの値はカスタムJavaハンドラー・クラスです。

ハンドラー・インスタンスに構成パラメータを渡すこともできます。

Code Block
<service name="MyServicePort">

...

  <requestFlow>
    <handler type="java:com.acme.axis.handler.MyHandler">

...

      <parameter name="acme.keyword"

...

 value="value"/>

...

    </handler>

...

  </requestFlow>
</service>


  カスタム・ハンドラー・クラスでは、org.apache.axis.handlers.BasicHandlerクラスを拡張する必要があります。 package com

Code Block
package com.acme.axis.handler ;
 

...

import org.apache.axis.AxisFault ;

...

import org.apache.axis.MessageContext ;
 

...

import org.apache.axis.message.PrefixedQName ;
 

...

import org.apache.axis.handlers.BasicHandler ;
 

...

import org.w3c.dom.Node ;

...

import org.w3c.dom.NodeList ;
 

...

import javax.xml.soap.Name ;

...

import javax.xml.soap.SOAPPart ;

...

import javax.xml.soap.SOAPBody ;

...

import javax.xml.soap.SOAPElement ;

...

import javax.xml.soap.SOAPMessage ;

...

import javax.xml.soap.SOAPEnvelope ;

...

import javax.xml.soap.SOAPException ;

...

  

...

import javax.xml.rpc.handler.soap.SOAPMessageContext ;
 

...

public class MyHandler extends BasicHandler
{

...

    public void invoke ( MessageContext messageContext )

...

 throws AxisFault
    {
         System.out.println (

...

 "MyHandler: invoke"

...

 ) ;
 

...

         String value = (String)getOption (

...

 "acme.keyword"

...

 ) ;

...

  

...

         modifyMessage ( messageContext ) ;
 

...

    }

...

}

...