「Axis」Web サービスを登録する

いまさらながらですが、Axis 使ってみたので、その時のメモです。
今回は Web サービスの登録です。

1. Axis のダウンロード、インストールする

以下から「axis-bin-1_4.tar.gz」をダウンロードしました。

・Index of /pub/network/apache/axis/axis/java/1.4
http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/axis/axis/java/1.4/

適当なディレクトリ ( /usr/local/axis/ ) に配置して展開する。

tar zxvf axis-bin-1_4.tar.gz

環境変数 AXIS_HOME を設定しておきます。

export AXIS_HOME=/usr/local/axis/axis-1_4


2. AP サーバに axis アプリケーションを配置する

AXIS_HOME/webapps 配下に axis アプリケーションが入っているので、こいつを AP サーバに配置してやる。
今回は AP サーバに Tomcat ( バージョン 6.0.14 ) を使うので、CATALINA_HOME/webapps 配下にコピーする。

cp -R $AXIS_HOME/webapps/axis $CATALINA_HOME/webapps

とりあえず、Tomcat 起動して「http://localhost:8080/axis」に正常にアクセスできるか確認しておく。


3. Web サービスの元になるクラスを作成する

クラスは「$CATALINA_HOME/webapps/axis/WEB-INF/classes」に作成することにします。

mkdir -p $CATALINA_HOME/webapps/axis/WEB-INF/classes/test
vi Test.java
javac Test.java

Test.java の内容は簡単に以下の感じで。

package test;

public class Test {
  public String hello() {
    return "hello";
  }
  public String greet(String name) {
    return name + " greet";
  }
  public int add(int a, int b) {
    return a + b;
  }
}


4. Web サービスデプロイメントディスクリプタ ( WSDD ) を作成して、Web サービスをデプロイする

ディレクトリはどこでもいいですが、クラスパスの設定が面倒なので「$CATALINA_HOME/webapps/axis/WEB-INF/classes/」にしました。

■ Test.wsdd

<deployment xmlns="http://xml.apache.org/axis/wsdd/"
    xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
  <service name="TestService" provider="java:RPC">
    <parameter name="className" value="test.Test"/>
    <parameter name="allowedMethods" value="*"/>
  </service>
</deployment>

AdminClient を利用してデプロイする

java -cp .:$AXIS_HOME/lib/* org.apache.axis.client.AdminClient Test.wsdd

※「要求されたクラス(javax.activation.DataHandler と javax.mail.internet.MimeMultipart)が見つかりません。Attachmentサポートが利用できません。」的なメッセージが出力されましたが、今回特に影響なかったので無視してます。何しか .jar が足りてないとかそんなんっぽいですが、詳しくは調べてません・・・

上記で Web サービスの登録完了です。「http://localhost:8080/axis/services/TestService?wsdl」にアクセスすると、wsdl の内容が表示されるはずです。

ドキュメントは以下あたりになりますね。

・WebServices - Axis
http://axis.apache.org/axis/ja/java/user-guide.html


次回はクライアント作成して、実際に Web サービス使ってみようと思います。

以上です。

[ 環境情報 ]
CentOS 6.2
Apache Tomcat 6.0.14
Apache Axis 1.4
Java SE 6 Update 14