ANA国内線【PR】
<  2007年 11月   >
  • メモ:Axis2でJSR181アノテーション
    [ 2007-11-07 20:58 ]
2007年 11月 07日
メモ:Axis2でJSR181アノテーション
Using JSR181 annotations with Axis2

Axis2でのJSR181アノテーションについて簡単に紹介されてます。
よい機能なのにドキュメンテーションがないということでJIRAにも登録したとのこと。

このブログを読んで初めて知ったのは、axis2.xmlに以下のようなエントリがあるということ。

<!--POJO deployer , this will alow users to drop .class file and make that into a service-->
<deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/>

Axis2のレポジトリの下にdirectoryで指定されているディレクトリ(この例では'pojo')を作成して、そこに @WebService や @WebMethod で注釈付けしてコンパイルしたクラスファイルを置くのである、とのこと。

早速試してみようとAxis2 1.3をダウンロードしてきました。
そのほかの環境はJDK5.0とTomcat5.0.28。

まずwebapps/axis2/WEB-INF/pojoディレクトリを作成。
次に以下のコードをコンパイルしてクラスファイルをpojoディレクトリにおいてTomcat起動。

// AnnoTestService.java
import javax.jws.WebService;
import javax.jws.WebMethod;

@WebService
public class AnnoTestService {
@WebMethod
public String sayHello(String yourName) {
return "Hello, " + yourName + ".";
}
}

ブラウザからサービス一覧を参照すると
AnnoTestServiceService.AnnoTestServicePort
というサービスが見えます。WSDLも参照できました。

このサービスをRESTで起動してみます。
http://localhost:8080/axis2/services/
AnnoTestServiceService.AnnoTestServicePort/
sayHello?yourName=est2006
確かに動作してます。
WEBサービスのレスポンスが返ってくるのを確認できました。

<ns:sayHelloResponse>
<ns:return>Hello, est2006.</ns:return>
</ns:sayHelloResponse>

今までサービスを作成するのにservices.xmlを用意し.aarにパッケージしてと手間が掛かってましたが、この方法だと本当にPOJOをコンパイルしてデプロイするだけです。

これは確かにきちんとドキュメンテーションされるべきかなと思いました。
Axis2ユーザー皆に伝えないともったいないと感じました。
by est2006 | 2007-11-07 20:58 | 参考記事リンク