Axis2 Information Model

さて、大分間を空けてしまったけど、S2Axisの開発に向け、Axis2へのサービスのデプロイ方法を調査してみる。
Axis1.x と Axis2 では、アーキテクチャが大きく変わってしまっているので、一から調べ直しです。

Information Model

まず、Axis2でサービスは「Information Model」という構成に基づいて管理されている。


構成としては分かりやすい。Axis Configuration のオブジェクトがS2から取得できれば、とりあえず何でもできそう。

Axis2でのサービスのデプロイ

Axis2でサービスをデプロイする際は、「Web Application」というAxisのWeb管理画面からサービスのjarファイル(*.jar もしくは *.aar というファイル名にする)をアップロードする。

この後、Axisがどのように処理するかというと、「Web Application」では、単にAxis2のサービスディレクトリ?(WEB-INF\services)配下にファイルを置くだけのようだ。
Axis2 の内部で TimerTask が動いており、一定時間毎にアップロードされたファイルをチェックして、jarファイルが新規に登録されれば、サービスのデプロイを行っている。


このクラスが、デプロイの主な処理を担当している。このオブジェクトが取得できれば、AxisConfiguraion も取得できて、デプロイも可能になるのだけれど、今のところ取得できる口が見当たらない。

S2Axis では、AxisServlet の ServletContext からサーバ側の AxisEngine を取得して、サービスのデプロイを行っていたので、同じ方法を調査してみたけど、Axis2 の AxisServlet では、同様のことができない。


うーん、どうしたものかな。