人気ブログランキング |
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 | 参考記事リンク
2007年 07月 28日
駅すぱあとのWEBサービスをAxis2で
RailGo Webサービス と Apache Axis2 を試す

Axis2のサンプルにもパブリックなWEBサービスを呼び出すものがありますが、
駅すぱあとのWEBサービスRailGoをAxis2で利用するサンプルをあげておられます。
Axis2は1.2を使っている模様。

RailGoは、.NETで構築されているようで、クライアントとしては.NETアプリか
Office2003を使うようにと但し書きがついてますが、Axis2から呼び出せてますね。

私はAxis2でサービスを用意して、それをいろんなクライアントから利用できるか?
という方向ばかり追求してきてましたが、この方はクライアントにAxis2を使っての、
Java以外のWEBサービスの利用を実証されてます。

呼び出すことに問題はないが、Axis2のjarの依存関係の多さに参っておられる様子。
確かに。。。
私は、Tomcatに丸ごとデプロイしてるので気にしたことがありませんでした。

参考にしていただいてるようなので、こちらからもリンク貼らせていただきます。
# by est2006 | 2007-07-28 02:26 | 参考記事リンク
2007年 07月 19日
Axis2 1.3 RC中
Axis2 1.3 のRCがリリースされてました。
が乗り遅れたので最新のSNAPSHOTをダウンロードしてきてみました。

●AARファイルの互換性

 Axis2 1.2 の頃に評価用に作成しておいた .aar をそのまま
 deployしてみましたが、特に問題なく動くようです。

●REST呼び出しの変更点

 1.2の時と違うのがREST呼び出しの時のURL。
 1.2の時は、
  http://localhost:8080/axis2/rest/Version/getVersion
 てな感じでしたが、
 今のスナップショットでは、
  http://localhost:8080/axis2/services/Version/getVersion
 となるようです。

●POJOサービスのレスポンスの違い

 1.2ではレスポンスのタグ全てにネームスペースが入っておりましたが、
 1.3ではPREFIXのみがセットされるようになったようです。
 これは項目の多いレスポンス等の時に、XML自体のサイズが小さくなってよいなと思います。

 また以下で赤で示したような「type=Bean名」という記述が追加になっています。

1.2でのレスポンス例

<ns:sayHelloResponse xmlns:ns="http://ws.aaa.bbb/types">
<ns:return>
<ret1 xmlns="http://test/xsd">xyz</ret1>
<ret2 xmlns="http://test/xsd">123</ret2>
<ret3 xmlns="http://test/xsd">99999</ret3>
<ret4 xmlns="http://test/xsd">123.456</ret4>
<ret5 xmlns="http://test/xsd">4.0</ret5>
<ret6 xmlns="http://test/xsd">789</ret6>
<ret7 xmlns="http://test/xsd">true</ret7>
</ns:return>
<ns:return>
<ret1 xmlns="http://test/xsd">xyzxyz</ret1>
<ret2 xmlns="http://test/xsd">246</ret2>
<ret3 xmlns="http://test/xsd">199998</ret3>
<ret4 xmlns="http://test/xsd">246.912</ret4>
<ret5 xmlns="http://test/xsd">8.0</ret5>
<ret6 xmlns="http://test/xsd">789</ret6>
<ret7 xmlns="http://test/xsd">true</ret7>
</ns:return>
</ns:sayHelloResponse>

1.3でのレスポンス例

<ns:sayHelloResponse xmlns:ns="http://ws.aaa.bbb/types" xmlns:ax29="http://test/xsd">
<ns:return type="test.HelloBean">
<ax29:ret1>xyz</ax29:ret1>
<ax29:ret2>123</ax29:ret2>
<ax29:ret3>99999</ax29:ret3>
<ax29:ret4>123.456</ax29:ret4>
<ax29:ret5>4.0</ax29:ret5>
<ax29:ret6>789</ax29:ret6>
<ax29:ret7>true</ax29:ret7>
</ns:return>
<ns:return type="test.HelloBean">
<ax29:ret1>xyzxyz</ax29:ret1>
<ax29:ret2>246</ax29:ret2>
<ax29:ret3>199998</ax29:ret3>
<ax29:ret4>246.912</ax29:ret4>
<ax29:ret5>8.0</ax29:ret5>
<ax29:ret6>789</ax29:ret6>
<ax29:ret7>true</ax29:ret7>
</ns:return>
</ns:sayHelloResponse>

# by est2006 | 2007-07-19 01:27 | Axis2
2007年 04月 28日
Axis2 1.2 リリース
Axis2 1.2 がリリースされました。

メーリングリストでのリリースアナウンスで紹介されていたのは以下になります。

◆Axis2 1.1 から Axis2 1.2 での主な変更点:
 - WSDL 2.0 fully support (reading, writing, and codegen)
 - POJO annotation (JSR 181)
 - JAX-WS integration
 - JAX-WS -annotation
 - Un-wrapping (Response)
 - ADB - support for union and list
 - Maven2 support
 - JSON support
 - Binary serialization (Fast infoste)
 - Codegen support for WSDL with Multiple services
 - HTTP code generation (both WSDL 1.1 and 2.0)
 - Custom deployer support
 - Message formatters
 - Message Builders
 - EJB Provider support

◆Axis2 1.2 の既知の問題と制限:
 - Xml-beans databinding does not support response uwwrapping
 - ADB databinding does not support minOccurs and maxOccures
   attributes in sequence and choice elements

私はまだ評価できてないのですが、今回の目玉は
やはり POJO annotation でしょうね。
じっくり評価する時間が欲しいです。

ダウンロードはこちらから。
# by est2006 | 2007-04-28 02:03 | Axis2
2007年 04月 04日
Axis2 1.2 RC2 リリース
Axis2 1.2 RC2がリリースされました。
問題がなければ、正式リリースは4/6を予定しているようです。

今回は、前回のようにすぐBugFix版の1.2.1が出るようなことが
なければよいなと思ってます。
# by est2006 | 2007-04-04 00:33 | Axis2
2007年 03月 27日
Axis2 1.2 RC1 リリース
Axis2 1.2 の RC1 がリリースされました。
ダウンロードはこちらから。
正式版のリリースは2007/4/6を予定しているようです。

このリリースに含まれるのは以下の機能となります。
 - WSDL 2.0 fully support(Reading, writing and codegen)
 - POJO - annotation
 - JAX-WS - integration
 - JAX-WS - annotation
 - Un-wrapping (Response)
 - ADB - missing schema support
 - Maven2 support
 - JASON support
 - Binary serialization
 - Multiple services support in code gen
 - HTTP code generation (both WSDL 1.1 and 2.0)
 - Fix/update helper mode
 - Custom deployers support
 - Message formatters
 - Message Builders

報告されていたJIRAの課題も数多く解決しているとのことです。
以上メーリングリストより。

私もBinaryディストリビューションのaxis2-1.2-RC1.zipを
早速ダウンロードしてaxis2.warを作ってTomcat5.0.28に
デプロイしてみました。
まだValidateページをチェックしたのと、versionサービスを
チェックしたくらいですが、とりあえず評価を始められそうです。

Tomcat 6 にデプロイすると、サービス一覧を参照するときに
HTTP error 500 が出るらしいので要注意のようです。
この件はAXIS2-2393としてJIRAに登録済みのようです。
# by est2006 | 2007-03-27 00:06 | Axis2
2007年 03月 10日
メモ:Axis2 and Spring
Expose Your POJO-Based Domain Apps as Web Services

Axis2とSpringでのPOJOを組み合わせたWebサービス実現の記事です。
Axis2のメーリングリストでリンクが紹介されてました。
# by est2006 | 2007-03-10 01:56 | 参考記事リンク
2007年 02月 24日
次期バージョン Axis2 1.2 のリリース予定
Axis2 1.2のリリースですが、メーリングリストによると
3月末を目標に作業が進められているようです。
ただ残件が多くあるようで楽観はできないと思われます。

このリリースでの実現内容として、
JAX-WS と POJO Annotation のサポートがあげられています。

これは例えば、以下のようなクラスを作って
.classファイルをデプロイすることで Webサービスとする
ことになるようです。

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

今はサービスにするために、services.xmlを作ったり、
.aarにまとめないといけなかったりと手間がかかりますが、
これでAxis2でのWebサービス構築が更にお手軽にできます。

このあたりはまた nightly builds で評価していきたいところです。
# by est2006 | 2007-02-24 21:49 | Axis2
2007年 02月 15日
メモ:Java Web サービス 記事
Java Webサービス 第1回: Java Webサービス、来るべき一年

この記事の英文オリジナルはこちらになってます。
更に英文では、Part2のDigging into Axis2: AXIOMもあります。
著者はAxis2コミッターのお一人です。

もう1年前の記事なのですが、Axis2関連は情報も少ないので
リファレンスとしてメモしておきます。
# by est2006 | 2007-02-15 00:56 | 参考記事リンク
2007年 02月 09日
メモ:SOAPってそうなんですか
S はシンプルの S

英語のblogの記事を和訳しておられます。
原文へのリンクも上記のページにあります。

SOAPの標準であるとか相互運用性について等を調べていると
いろんな疑問にぶつかります。

そんなもやもやに明かりをともしてくれます。
# by est2006 | 2007-02-09 01:03 | 参考記事リンク