Axis2 の環境に Web サービスを登録する

たいぶと前になりますが、以下のエントリーで構築した Axis2 の環境に Web サービスを登録してみました。その時のメモです。

・「WebサービスAxis2 環境を構築する - プログラム日記
http://a4dosanddos.hatenablog.com/entry/2013/04/10/002224

[ 環境情報 ]
CentOS 6.2
Apache Tomcat 7.0.27
Java SE 6 Update 34
Apache Axis2 1.6.2


以下の Quick Start を参考にしながら進めます。

Apache Axis2 - Axis2 Quick Start Guide

http://axis.apache.org/axis2/java/core/docs/quickstartguide.html#services

以下の機能を提供する Web サービスを作ってみようと思います。
・"Hello" という文字列を返す
・パラメータとして渡した英字の文字列を全て大文字に変換する
・足し算を行う

1. 上記の機能を提供する Java プログラムを作成する

public class Axis2Sample {
	
	public String hello() {
		return "hello";
	}
	
	public String getUpperString(String s) {
		return s.toUpperCase();
	}
	
	public int add(int a, int b) {
		return a + b;
	}
}

コンパイルしておく。


2. aar ファイルを作成する

まず、services.xml を作成する。

<service name="Axis2Sample" scope="application">
    <messageReceivers>
        <messageReceiver 
            mep="http://www.w3.org/2004/08/wsdl/in-only"
    class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
        <messageReceiver
            mep="http://www.w3.org/2004/08/wsdl/in-out"
    class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
    </messageReceivers>
    <parameter name="ServiceClass">
        Axis2Sample
    </parameter>
</service>

ディレクトリ構成は以下の感じにして

Axis2Sample
 - META-INF
   - services.xml
 - lib
 - Axis2Sample.class

次のコマンドを実行する ( ディレクトリ Axis2Sample に移動しておく )。

jar cvf axis2sample.aar META-INF/ lib/ Axis2Sample.class


3. Web サービスを登録する

axis2sample.aar を $CATALINA_HOME/webapps/axis2/WEB-INF/services にコピーする。
※ 試してないけど、たぶん Administrator console からでもできるっぽい。

Administrator console にログインして「Available Services」の箇所を見ると、上記で作成した "Axis2Sample" といった表示が確認できる。ひとまず、Web サービスの登録は無事完了したっぽい。

Apache Axis2 - Apache Axis2 Web Administrator's Guide
http://axis.apache.org/axis2/java/core/docs/webadminguide.html


本当は「クライアント作成して Web サービス呼び出す」ってところまでやって完了なのですが、もう眠いので、また今度やります。
おそらくクライアント作成のドキュメントは、以下あたりになるんかなと。

Apache Axis2 - Apache Axis2 User's Guide- Creating Clients
http://axis.apache.org/axis2/java/core/docs/userguide-creatingclients.html#createclients

以上です。