S2Axisにボチボチと手を出してみたり。正直言ってかなりスゲェです。
ああ、何かやって欲しい事は全部やって貰ったかなぁ…と。

追記:

と、思ったのですが、ログをクライアントサイドで出力する事を鑑みて調査してみた所、
client-config.wsddと言うファイル名で
クライアントサイドのクラスパスルートにファイルを作成すると、
クライアントサイドでも、Handlerをアレコレ仕込む事が出来るみたいです。
丁度こんな感じ…

<?xml version="1.0" encoding="UTF-8"?>
<deployment name="defaultClientConfig"
            xmlns="http://xml.apache.org/axis/wsdd/"
            xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
 <globalConfiguration>
   <parameter name="disablePrettyXML" value="true"/>
 </globalConfiguration>
 <transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender">
       <requestFlow>
          <handler type="java:org.seasar.axis.examples.ex06.LoggingHandler"/>
      </requestFlow>
      <responseFlow>
          <handler type="java:org.seasar.axis.examples.ex06.LoggingHandler"/>
      </responseFlow>
 </transport>
 
 <transport name="local" pivot="java:org.apache.axis.transport.local.LocalSender"/>
 <transport name="java" pivot="java:org.apache.axis.transport.java.JavaSender"/>
</deployment>

現状の、org.seasar.axis.server.deployment.Deployerだと、
多分きっとSOAPサーバ時のHandlerしかデプロイ出来ないんじゃないかと思います。
と言うわけで、SOAPクライアントになる時にも、
S2ContainerにHandlerをデプロイ出来ないかなぁ…と思う次第です。
如何でしょうか?id:koichikさん。


思いつきのメモ書きなのです。


org.apache.axis.MessageContextのライフタイムが若干恐い感じ。
でも、きっとリクエスト単位に作られては破棄されるんだろうな…と。
MessageContext#setPropertyも、APIのセンスに疑問があるけど、
まぁ突付くならこの辺位かな…っと。


僕がHandlerとして作成しようとしているのは、
SOAPのメッセージをXMLの形のままRDBなりローカルファイルなりにロギングするHandlerです。
名付けて「問題解決丸」。ってのは、冗談デスガ。

ポイントは、ステータスコードを付属しなければならない事。
例えば、

  • リクエストを受けた時に、開始(1)
  • レスポンスを返した時に、リクエストを受けた時のレコードのステータスを、終了(2)
  • AxisFaultになっちゃったら、異常(3)

みたいな。
ステータス管理があるので、Log4jみたいなロギングAPIがうまく使えないのが悲しいデス。


リクエストのXMLとレスポンスのXMLをキチンと対にして管理出来る事と
それぞれのステータスもセットに管理出来る事が、最重要課題。
パフォーマンスのボトルネックになるのもイカンです。ハイ。