|
JWSファイルを使って既存JavaクラスをWebサービス化する方法は簡単ですが、
この方法ではメソッド(オペレーション)の引数や戻り値に独自のデータ型
(自作クラスのオブジェクト)を使うことができません。
そのようなことをする場合には、
WebサービスのインターフェースからJavaコードを書き、
Axis付属のJava2WSDL、WSDL2Javaなどのユーティリティを使って、
Webサービスを開発します。これらのユーティリティを使うとかなりのコードが自動的に生成されるので、
ポータブルでかつ効率の良い開発を行うことができます。
- Webサービスのインターフェースクラスを作る。
- Java2WSDLツールでWSDL文書を作る。
- WSDL2Javaツールで実装クラスのスケルトン・ソースコードを生成
- 実装クラス「*****SoapBindingImpl.java」に中身を書く。
- これらのファイルをコンパイルする。
- クラスファイルを $APP_HOME/WEB-INF/classes 以下にコピー。
- $APP_HOME/WEB-INF/server-config.wsdd ファイルに記述を追加。
(deploy.wsddの記述の一部をコピー)
- クライアントアプリケーション
(スタンドアローンJavaアプリケーションや、JSP文書)を開発。
こんな流れになります。
インターフェースクラス
カスタムデータ型クラス
build.xml
実装クラス
server-config.wsdd
クライアントJSP文書
-
インターフェースクラス(ShitenFinder.java)とカスタムデータ型クラス(Shiten.java)
を、開発ディレクトリの下 srcif/ushiws/shiten ディレクトリに置き、
Antターゲット「compile1」でコンパイルします。
-
Antターゲット「shiten.java2WSDL」を実行し、
WSDL文書ShitenFinder.wsdlを生成します。
-
Antターゲット「shiten.WSDL2java」を実行し、
Java実装クラス(ShitenFinderSoapBindingImpl.javaなど)や
deploy.wsddなど一式を生成します。
-
テキストエディタで、実装クラスの中身を書きます。
-
Antターゲット「compile2」でコンパイルします。
-
できたクラスファイル(ushiws/shiten/*.class)を、
このディレクトリ構造のまま、$APP_HOME/WEB-INF/classes の下にコピーします。
-
deploy.wsddの、該当するserviceタグの範囲を、
$APP_HOME/WEB-INF/server-config.wsdd にコピーして書き足します。
server-config.wsdd の雛形は axis.jar の中に入っているので、
一度展開して取り出し、上記の位置にコピーして使います。
-
これでWebサービスの配備は完了です。
アプリケーションのトップページ(Axisのルートページ)
または $APP_HOME/servlet/AxisServlet
にアクセスすると、配備されているWebサービスの一覧を見ることができます。
-
クライアントJavaアプリケーション、またはサーブレットやJSPなどを開発します。
(first uploaded 2003/07/01 last updated 2003/07/03, URANO398 - KQ TAURA)
|