■
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です。
名付けて「問題解決丸」。ってのは、冗談デスガ。
ポイントは、ステータスコードを付属しなければならない事。
例えば、
みたいな。
ステータス管理があるので、Log4jみたいなロギングAPIがうまく使えないのが悲しいデス。
リクエストのXMLとレスポンスのXMLをキチンと対にして管理出来る事と
それぞれのステータスもセットに管理出来る事が、最重要課題。
パフォーマンスのボトルネックになるのもイカンです。ハイ。