S2Axis 開発記 準備その2 JWSHandler
Axis には JWS という,手軽に Web サービスを記述して配備する機能があるそうです.
JWS というのは,拡張子 .jws
を持ったただの Java ソースファイルです.ただし,パッケージに属することは出来ないみたいですが.
その JWS を Axis の管理しているディレクトリに配置すると,それだけでそこに記述されたクラスが Web サービスとして公開されるらしいです.すげー.
いわば,JSP の Web サービス版ですね.
このメカニズム,S2Axis に使えるんじゃないかなぁ?
昨日はこう書いたんですけど...
自分が最初にこの S2Axis の話を聞いたときにイメージしたのは,Axis と S2 (コンテナ&コンポーネント) を組み込んだ Web アプリを Tomcat なんかにデプロイすると,S2ContainerServlet の初期化の際に S2Axis によってコンポーネントが Axis に登録されるというもの.
なんかこれ,イマイチっぽい.
というのも,コンテナ内のどのコンポーネントを Axis に登録するか? という問題があるから.
コンポーネントを片っ端から全部登録するってのはイマイチですよね.DataSource
とか公開してどうするの? とかあるわけで.
そうすると,Web サービスとして公開するコンポーネントを識別できるように,dicon ファイルに何らかの方法で記述してあげなくてはなりません.
集中管理的なアプローチだと,S2Axis が Web サービス公開用のコンポーネントを提供して,そのプロパティに設定されたコンポーネント (複数) が公開されるとか.
あるいは分散管理的なアプローチだと,公開対象のコンポーネントに S2Axis が提供するアスペクトを組み込むとか.
でも,これだと Web サービス用の記述が必要になるわけで,WSDD を書くのと手間は大して変わらないんじゃないかと思ったり.S2 らしい「易しさと優しさ」が足りない気がしたわけです.
そこで JWS 的アプローチ.
JWS を処理するのは JWSHandler
というクラスなのですが概ね次のように動いているようです.
ここで,JWS を見つけてコンパイルする代わりに,S2 コンテナからコンポーネントをルックアップして同じ事をすればいいのではなかろうか?
Axis というのはメッセージを処理する「ハンドラ」の固まりとして実装されていて,その構成はかなり自由にできるようなことがドキュメントに書いてあります.であれば,このアプローチでもいけそうな気がします.
ということで,JWS の実装を中心に学習していこうと思います.
え? これだけかって? (^^;
うん,今日はこれだけです.
...はい、学習できない子なんです。
残念!!!!