Apache AxisによるWebサービス開発

 JWSファイルを使って既存JavaクラスをWebサービス化する方法は簡単ですが、 この方法ではメソッド(オペレーション)の引数や戻り値に独自のデータ型 (自作クラスのオブジェクト)を使うことができません。 そのようなことをする場合には、 WebサービスのインターフェースからJavaコードを書き、 Axis付属のJava2WSDL、WSDL2Javaなどのユーティリティを使って、 Webサービスを開発します。これらのユーティリティを使うとかなりのコードが自動的に生成されるので、 ポータブルでかつ効率の良い開発を行うことができます。


簡単な手順の説明

  1. Webサービスのインターフェースクラスを作る。
  2. Java2WSDLツールでWSDL文書を作る。
  3. WSDL2Javaツールで実装クラスのスケルトン・ソースコードを生成
  4. 実装クラス「*****SoapBindingImpl.java」に中身を書く。
  5. これらのファイルをコンパイルする。
  6. クラスファイルを $APP_HOME/WEB-INF/classes 以下にコピー。
  7. $APP_HOME/WEB-INF/server-config.wsdd ファイルに記述を追加。 (deploy.wsddの記述の一部をコピー)
  8. クライアントアプリケーション (スタンドアローンJavaアプリケーションや、JSP文書)を開発。
こんな流れになります。


リソースの例

インターフェースクラス
カスタムデータ型クラス
build.xml
実装クラス
server-config.wsdd
クライアントJSP文書

  1. インターフェースクラス(ShitenFinder.java)とカスタムデータ型クラス(Shiten.java) を、開発ディレクトリの下 srcif/ushiws/shiten ディレクトリに置き、 Antターゲット「compile1」でコンパイルします。
  2. Antターゲット「shiten.java2WSDL」を実行し、 WSDL文書ShitenFinder.wsdlを生成します。
  3. Antターゲット「shiten.WSDL2java」を実行し、 Java実装クラス(ShitenFinderSoapBindingImpl.javaなど)や deploy.wsddなど一式を生成します。
  4. テキストエディタで、実装クラスの中身を書きます。
  5. Antターゲット「compile2」でコンパイルします。
  6. できたクラスファイル(ushiws/shiten/*.class)を、 このディレクトリ構造のまま、$APP_HOME/WEB-INF/classes の下にコピーします。
  7. deploy.wsddの、該当するserviceタグの範囲を、 $APP_HOME/WEB-INF/server-config.wsdd にコピーして書き足します。 server-config.wsdd の雛形は axis.jar の中に入っているので、 一度展開して取り出し、上記の位置にコピーして使います。
  8. これでWebサービスの配備は完了です。 アプリケーションのトップページ(Axisのルートページ) または $APP_HOME/servlet/AxisServlet にアクセスすると、配備されているWebサービスの一覧を見ることができます。
  9. クライアントJavaアプリケーション、またはサーブレットやJSPなどを開発します。

XML Top

(first uploaded 2003/07/01 last updated 2003/07/03, URANO398 - KQ TAURA)

Gポイントポイ活 Amazon Yahoo 楽天

無料ホームページ 楽天モバイル[UNLIMITが今なら1円] 海外格安航空券 海外旅行保険が無料!