Apache Axis2 はApache Software Foundationで作成されているWebサービスエンジン。
実装は開発言語により2種類に分かれていて、それぞれAxis2/Java, Axis2/Cと呼ばれている。
先代にあたるAxis1.xはJavaによるSOAPの参照実装扱いがされていて、各種WebアプリケーションサーバのWebサービスエンジンとして活躍した実績がある。だがなぜわざわざ2を作るのか?Axis2のページにこうある。
The new architecture on which Axis2 is based on is more flexible, efficient and configurable in comparison to Axis 1.x architecture.
つまり、より柔軟で使いやすいWebサービスエンジンを提供するのが目的、というわけ。
実際のところそれが達成できているかは怪しいが、とにかく2なのである。
以下、本家が公称している特徴。
- SOAP1.1 および SOAP1.2をサポート。RESTもオッケー。
- スピード
- 少ないメモリで動く
- 独自のオブジェクトモデルでメッセージ生成を実装
- ホットデプロイ可
- 非同期Webサービスを提供可能
- MEPサポート
- POJOアノテーション(JSR-181), SpringFrameworkのサポート、EJBサポート
- その他WS-*のサポートなど多数
個人的にはJAX-WSのサポートとEJBサポートに期待していて、その辺りを検証してみたい。
検証環境
色々書いたりやるまえに環境の紹介。
- 開発環境:Oracle JDeveloper 10.1.3.3 (Linux版, 付属OC4Jを使用)
- OS : Debian GNU/Linux (etch, Java 1.5.0_05), もしくは Mac OSX(Java 1.5.0_13)
Axis2のインストールとサーバの立ち上げ
Axis2は配布形式が複数あって、内容が異なる。
- Standard Binary Distribution
- WAR Distribution
- Documents Distribution
- Source Distribution
実は1.には小型のアプリケーションサーバが同梱されていて、特別TomcatやJBossなどを準備しなくてもAxis2が使えるようになっている。
インストールしたディレクトリをAXIS2_HOMEとすると、$AXIS2_HOME/bin/axis2sever.shを実行するとポート8080を開いてサーバ`SimpleAxisServer'が立ち上がる。
ブラウザでlocalhost:8080にアクセスすると、Axis2のデモ用に準備されているVesionサービスが表示される。リンクをクリックするとWSDLを取得することができる。このサーバはAxis2プロジェクトが独自に実装しているものであるようなので、実際の開発用にはちょっと向かない。なので開発時はWARディストリビューションを使うほうが良いが、ちょっと触ってみたり試す分には良いかもしれない。
最初のWebサービス作成とデプロイ
Axis2を使ってサービスを公開する手順を追ってみる。
以下、Apache Axis2 Quick Start Guideより一部抜粋。
- Axis2 Webアプリケーション(WAR Distributionに含まれるaxis2.war)をデプロイして起動を確認する
Tomcatのデフォルト設定であれば、http://localhost:8080/axis2/でアクセス可能。 - サービス用のクラスを作成する。POJOで良い
- Axis2のサービス専用アーカイブ(拡張子.aar, 実際はJAR形式)を作成する
- Axis2管理ツールを使ってAARファイルをデプロイする
管理ページの"Tools" -> "Upload service"でファイルを選択してデプロイ。しばらくすると"System Components" -> "Available Service"の一覧に作成したサービスが表示される。サービス名を選択するとWSDLが自動生成で出力される。
例えば2で作成したクラスがcom.battella.axis2.services.CalcServiceというクラスだった場合、AAR内のファイルは以下のようになる。
META-INF/manifest.mf
META-INF/services.xml
com/battella/axis2/services/CalcService.class
かんたーん。これ以外にもBinary Distributionに含まれているツールを使うのもありだが、環境整えるのが面倒なのでこれが一番簡単。クライアントはEclipseやJDeveloperなどの開発環境に付属している、WSDLからクライアント生成を行うツールを利用すると良い(本当はもっと色々できるけど)。
services.xmlは特別複雑な設定ファイルではないので、最初はQuickStartGuideにあるものをコピーして使ってもさほど問題は無いはず。今回はこんな感じにしてみた。
というわけで、初回のイントロダクションはここまで。
次回はもうちょっと深くやってみようと思う。
0 件のコメント:
コメントを投稿