0. 準備① すでにEclipse、WTP、Axis2の設定は完了していること。
「
Eclipse + Axis2連携手順 及び簡易サービス作成手順 」参照
1. サーバ側プロジェクトの作成① ファイル -> 新規 -> プロジェクト -> Web -> 動的Webプロジェクト を選択する
② 構成の変更からプロジェクト・フィアセットを開き、以下の項目のみを有効にする
Axis2 Webアプリケーション
Java
動的Webモジュール
③ 任意のプロジェクト名を入力
④ 完了を押下
2. サーバ側プロジェクト初期設定① Eclipseのワークスペース \ 作成したプロジェクト\ WebContent \ WEB-INF \ lib ディレクトリに
Axis2を展開したディレクトリ\lib ディレクトリ配下のjarファイルをコピーする
② プロジェクトをリフレッシュ
③ Web.xmlを書き換える
org.apache.axis2.transport.http.AxisAdminServlet
↓
org.apache.axis2.webapp.AxisAdminServlet
3. サービスの作成① 以下のクラスを作成する
public class test {
public OMElement echo( OMElement request ){ return request; }
}
echoメソッドは送信されてきたメッセージを、そのまま返却するものである
4. Webサービスの登録① 作成したクラスを右クリック -> Webサービス -> Webサービスの作成を実行
② デフォルトの設定で十分なので、なにも設定せずそのまま完了ボタンを押下
この作業でWSDLが作成される。
5. クライアントプロジェクトの作成① ファイル -> 新規 -> プロジェクト -> JAVA -> JAVAプロジェクト を選択
② 任意のプロジェクト名を入力
③ 完了を押下
6. クライアントプロジェクト初期設定① 作成したプロジェクトのプロパティを開く
② JAVAのビルド・パスを表示
③ 外部JARの追加を押下
④ Axis2を展開したディレクトリ \ lib 配下のJarをすべて追加
7. クライアントを作成① 以下のクラスを作成する
# 適宜編集してください
public class Client {
static public void main (String[] args ) {
{
// エンドポイントURL
// ~/services/以降がクラス名
String endpointStr = "http://localhost:8080/サーバ側プロジェクト名/services/test/";
ServiceClient sender = null;
Options options = new Options();
try {
sender = new ServiceClient
} catch(AxisFault e ){
e.printStackTrace();
return;
}
// オプションの設定
// エンドポイントの設定
options.setTo(new EndpointReference( endpointStr ) );
// プロトコルの設定
options.setTransportInProtocol( Constants.TRANSPORT_HTTP);
// オプションを反映する
sender.setOptions( options );//送信メッセージの作成
OMFactory fac = OMAbstractFactory.getOMFactory( );
// ネームスペースの生成
OMNamespace omNs = fac.createOMNamespace("http://作成したサービスのパッケージ" , "Request" );
// 要素の作成
OMElement request =
fac.createOMElement(
"echo", // 実行するメソッド
omNs);
OMElement msg = fac.createOMElement("Msg", omNs);
// テキストの追加
msg.setText ( "Hello, World !!!" );
// 要素の追加
request.addChild( msg );
try{
// リクエストの送信、レスポンスの受信
OMElement response = sender.sendReceive( request );
// レスポンスをコンソールに表示
System.out.println( "レスポンス : " + response.toString() );
}catch(AxisFault e ){
e.printStackTrace();
return;
}
}
}
8. 通信の確認① サーバを起動する。
② クライアントを実行する。
③ コンソール上に以下の表示があれば完了です
# 以下の文は適宜改行しています。
本来は一行で表示されます。
レスポンス :
<echoresponse xmlns:ns="
http://サービスパッケージ名">
<return>
<msg xmlns:request="
http://サービスパッケージ名">
Hello, World !!!
</msg>
</return>
</echoresponse>