ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

Apache Axis2を試してみる。

http://ws.apache.org/axis2/
以前書いたエントリで、Apache Axis2のHot Deployment面白そうねとか書いた手前、さっくり試してみる。

ダウンロード

http://ws.apache.org/axis2/download/1_3/download.cgi
の辺りから、Standard Binary Distributionを入手。

インストール

特になし。アーカイブ展開するだけ。

とりあえず動かしてみる

axis2-1.3/bin/axis2server.bat
を起動し、
http://localhost:8080/
にアクセスしてみる。


と、Deployed servicesの画面が現れて、Versionサービスが使えることが分かる。
とりあえずVersionのリンクをクリックすると、URLが「http://localhost:8080/axis2/services/Version?wsdl」となり、wsdlが表示される。
URLを以下のようにしてみると、サービスを起動できる。

http://localhost:8080/axis2/services/Version/getVersion

結果として、

<ns:getVersionResponse>
 <ns:return>
  Hello I am Axis2 version service , My version is 1.3
 </ns:return>
</ns:getVersionResponse>

みたいのが表示されればOK。

自分でWebサービスを書いてみる

インストールディレクトリ直下に置いてあるREADME.txtによれば、

  • Webサービスの実装クラスと、services.xmlを書く
  • それらをjarで拡張子aarっていうファイルに固める
  • 所定のフォルダに配置する

でサービスを公開できるらしい。
早速やってみよう。


作業フォルダとしてaxis2-1.3/samples/helloを使う。


axis2-1.3/samples/hello/META-INF/services.xml

<service name="Hello">
    <parameter name="ServiceClass">Hello</parameter>
    <operation name="hello">
    <messageReceiver  class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
    </operation>
</service>

axis2-1.3/samples/hello/Hello.java

public class Hello
{
	public String hello()
	{
		return "Hello, World!";
	}
}

至ってシンプル。POJOってステキ!


で、Hello.javaコンパイルする。
作業ディレクトリは、axis2-1.3/samples/helloです。

axis2-1.3\samples\hello>javac Hello.java

でもって、aarアーカイブを作成する。

axis2-1.3\samples\hello>jar cvf hello.aar Hello.class META-INF
マニフェストが追加されました。
Hello.class を追加中です。(入 = 275) (出 = 209)(24% 収縮されました)
エントリ META-INF/ を無視します。
META-INF/services.xml を追加中です。(入 = 220) (出 = 134)(39% 収縮されました)

axis2-1.3\samples\hello>

で、この出来上がったhello.aarを、axis2-1.3/repository/servicesにコピーする。
と、最初に起動したaxis2serverの窓に、

[INFO] Deploying Web service: hello.aar

とか表示されて、Hot Deployment(?)される。


とりあえず動かしてみるのところに戻ってみると、Helloサービスが使えるようになっているのが分かる。axis2serverの再起動は必要なし!

感想

結構簡単にできますね。