2009年11月15日日曜日

Axis2 1.4/Galileo/WTP

古い developerworks の記事事の Web サービスのサンプルを、Eclipse 3.5 Galileo の WTP から動かしてみる。

結構良さげな記事なのに、細かいところが各製品の最近の版といろいろ食い違っていてもったいない。それと Eclipse でできるかも試してみたい。というわけでやってみる。(記事を見るには登録が必要)

■ 事前準備
まずは、Axis2 1.5.1 をダウンロードして展開して。Eclipse 3.5 の [Preference] -> [Web Services] から、Axis2 の runtime location として設定しておく。重要:現時点(2009/11/15)最新の Axis2 1.5.1 だと、何かがかみ合わなくて動かないので、1.4.1 を使う。)

■ Dynamic Web Project 作成
  • 名前はとりあえず"axis2-trial1"とする
  • Configuration で Axis2 を選択。無かったら [Modify...]で Axis2 Web Services にチェックして Project Facet に追加指定。
  • Finish する。WEB-INF の下がちょっと独特なので、観察しておく。
■ Web サービス作成
  • リスト 26 の CMSService クラスを作る。
  • リスト 22 の services.xml を書く。
  • CMSService 上のコンテキストメニューから Web サービスを新規作成。
    • CMSServiceクラスからの Bottom up になっている事を確認
    • スライダーを Assemble service に下げる
    • [Next]で、service.xml を指定する。
    • Finish
  • WEB-INF/service 下に自動生成ファイルが出来てくるので、ちょっと観察しておく。
■ 実行してみる
  • Servers ビューで、Tomcat v6.0 に プロジェクトを追加
  • Tomcat v6.0 を起動
  • ブラウザから下記URLを開いて管理コンソールが立ち上がっているのを確認。
    http://localhost:8080/axis2-trial1/axis2-web/index.jsp
  • 管理コンソール の [Services]→[CMSService] で wsdl を確認
  • 上記 WSDL を用いて、ブラウザとか、Eclipse の Web Service Explorer とか、soapUI (フリーのSOAPツール。お勧め。)とかで確認。
    • getNumberOfArticle では、固定値42が返される。
    • addArticle では、Eclipse のコンソールにリクエストがトレースされる。ただしレスポンスは返されない(非同期)
  • リスト27リスト30のクライアントコードを試してみる。ポート番号を書き換えれば、WTP のTCP/IP Monitor で SOAP メッセージが確認できる。

0 件のコメント:

コメントを投稿