MTOMをめぐるあれこれとTCPMONについて

今朝、体重を量ったら70kgを超えていた。ショック。

さて、今日はProject EulerのProblem18を解いた後、気が向いたので、
Axis2でMTOMを試していた。
と言っても、Axis2に付属のサンプルを動かしただけなのだが、
これに見事にはまってしまった。

まずは、SOAPMonitorの件だが、これは文字通りSOAPメッセージしか
読まないようである。どうもMTOMを使っていても、普通のSOAPメッセージに
変換して表示するようであり、少々大きいバイナリデータ(6MB)程度を送信
するだけで、あっさり動作が不安定になる。

結局、SOAPMonitorの件は、Axis1系に付属していたTCPMON1.0を某所から
ダウンロードして置き換えることにした。
これで、MIMEを正常に表示できるようになり、MTOMの設定が効いているか
どうかを確認できるようになった。

実は、SOAPMonitorの表示を鵜呑みにしていたため、MTOMのサンプルを動かす
ことだけに1週間はかかってしまった。これが仕事だったらボコボコにされている
ところだ。

次にMTOMの有効化の件だが、今まで大きな勘違いをしていたことに気がついた。
クライアント側でMTOMを有効化するには、OptionsクラスのsetPropertyメソッドへ
下記のように値を設定するだけで良かったし、Axis2のサイトにもそう書かれている
のだが、


....setProperty(Constants.Configuration.ENABLE_MTOM,Constants.VALUE_TRUE);
サーバ側のservice.xmlaxis2.xmlにも下記の記述が必要だと勘違いしていた。

true
この記述は、サーバ側からMTOMでバイナリデータを送信する場合には必要であるが、
クライアント側から送信する場合には不要なようだ。
実際に今日、サンプルを動かしたところ、クライアント側の設定だけで正常に動作した。

で、ようやくAxis2のMTOMで書きたかったことを思い出したのだが、今日は疲れたので、
また後日と言うことで勘弁してほしい。

というか、こんな当たり前のことに需要はあるのだろうか。