1. はじめに |
以前から、Axisには興味がありましたが、知らないうちにAxis2になっていました。Axis2は、Amazon.comなどで用いられいてるREST形式のWebサービスを提供しており、Ver1.3からはPOJOのアノテーションによるWebサービス化を実現しているということで、Webサービスの敷居が少し低くなる思いがしています。
2. 準備
3.
4.
2. 準備 ↑top |
まずは、環境を揃えるとしましょう。ここでは、Fedora上のTOMCATを用いて、Axis2を動かすこととします。
# cd /usr/local/src ←ダウンロード先はどこでもよいです。
# wget http://ftp.riken.jp/net/apache/ws/axis2/1_3/axis2-1.3-war.zip
# unzip axis2-1.3-war.zip
# cd /usr/local/tomcat/webapps
# cp /usr/local/src/axis2.war .
この状態で、TOMCATを再起動すると、以下でアクセス可能となります。
http://(サーバIPアドレス):8080/axis2/
私の環境では、ApacheとTOMCATを連携して 8080ポートをふさいでいたため、/etc/httpd/conf.d/proxy_ajp.confに、/axis2/の設定を追加して、http://(サーバIPアドレス)/axis2/にアクセスしたところ、Axisの画面が表示されるようになりました。
Axis2では最初からVersionというWebサービスのみがデプロイされており、これにアクセスするためには、WSDLを利用してクライアントプログラムを書かないといけませんが、Axis2ではREST形式のWebサービスも同時に提供しているということで、ブラウザから以下でアクセスできます。
http://(サーバIPアドレス):8080/axis2/services/Version/getVersion
結果を以下に示す。
- <ns:getVersionResponse xmlns:ns="http://axisversion.sample">
<ns:return>Hello I am Axis2 version service , My version is 1.3</ns:return>
</ns:getVersionResponse>
もちろん、WSDLから正規にWebサービスにアクセスしてもよい。
WSDLは以下で取得できる。
http://(サーバIPアドレス):8080/axis2/services/Version?wsdl
3. POJOにアノテーション ↑top |
POJOのアノテーションを加えることで、Webサービス化できるということで、実験してみます。
@まず、/usr/local/tomcat/webapps/axis2/WEB-INF配下に、pojoディレクトリを作る。
Apojoディレクトリ配下にsrcディレクトリを作成し、その中にテストプログラム AnnoTestService.java を作成する。
ソースプログラム AnnoTestService.java
// AnnoTestService.java
import javax.jws.WebService;
import javax.jws.WebMethod;
@WebService
public class AnnoTestService {
@WebMethod
public String sayHello(String yourName) {
return "Hello, " + yourName + ".";
}
}
B以下でコンパイルする。javacはVer1.5でないと怒られます。
javac -classpath .:/usr/local/tomcat/webapps/axis2/WEB-INF/lib/axis2-jws-api-1.3.jar
-d .. *.java
これにより、pojo配下にクラスが生成される。
CTOMCATを再起動する。
これで終わり。
ブラウザからサービス一覧を参照すると
AnnoTestServiceService.AnnoTestServicePort
というサービスが見え、WSDLも参照できた。
このサービスは、RESTでアクセスできるそうで、ブラウザから以下を実行してみた。
http://localhost:8080/axis2/services/AnnoTestServiceService.AnnoTestServicePort/sayHello?yourName=egami
このときの応答は以下になるはずなのだが、Hello, null.になってしまう。なぜでしょう。。
<ns:sayHelloResponse>
<ns:return>Hello, egami.</ns:return>
</ns:sayHelloResponse>
4. ↑top |
このページにご意見のある方は、egami@ee.em-net.ne.jp までお願い致します。