wsdl2javaコマンドオプション
-uri ... WSDLドキュメントの場所(リモートURLでも、ローカルファイルのパスでも可) -s ... 同期コードの生成 -ss ... サーバ側のコードを生成(スケルトン) -sd ... サーバ側service.xmlの生成 -o ... 出力先を指定する。 ■オプション -u ... 生成時にソースを別にする -p ... 生成したコードに対して独自のpackage名を指定 -ns2p ... WSDLスキーマ内の特定の各namespaceに対して、独自のpackage名を指定 -ssi ... サービスの実装に対して、インターフェースを生成(XxxxxxSkeletonInterface.java) 詳細は下記の関連記事を参照のこと。http://blogs.yahoo.co.jp/dk521123/33842530.html
大まかな手順
[1] wsdl2javaコマンドにより、サーバ側スケルトンを生成する [2] Javaプロジェクトを作成し、手順[1] のファイルを追加する [3] スケルトンを実装し、ビルドする [4] AARファイルをアップロードする
手順・詳細
[0] 前提条件:環境設定
* 以下のように環境を設定しておくhttp://blogs.yahoo.co.jp/dk521123/31944955.html
[1] サーバ側スケルトンを生成
コマンド構文
wsdl2java.bat -uri [wsdlのアドレス] -s -ss -sd -ssi -o [出力先]
例1
コマンドプロンプトで以下を実行cd C:\pg\axis2-1.6.2\bin wsdl2java.bat -uri http://localhost:8080/Axis2Sample/services/HelloWorld?wsdl -s -ss -sd -ssi -o out
例2
コマンドプロンプトで以下を実行。事前にXSDLファイル「HelloWorld.wsdl」を「C:\pg\axis2-1.6.2\bin」に保存しておく。また、ソースを別々にしているcd C:\pg\axis2-1.6.2\bin wsdl2java.bat -uri HelloWorld.wsdl -u -s -ss -sd -ssi -o out
出力結果(スケルトン)
build.xml :Ant用ファイル srcフォルダ :スケルトンコード resourcesフォルダ :WSDLファイルのコピー
[2] プロジェクトにスケルトンコードを追加
[2-1] Eclipseで、「File]-[New]-[Java Project]でプロジェクトを追加(「HellowWorldServer」とする) [2-2] 追加したプロジェクト「HellowWorldServer」を右クリックし、[Import]-[General]-[File System]を選択 [2-3] Browseボタン押下し、wsdl2javaコマンドより生成したファイルを追加(例の場合「C:\pg\axis2-1.6.2\bin\out」) [2-4] 「Select All」ボタンを押下し、全てを選択(build.xml含む)し、「Finish」ボタン押下
[3]スケルトン「XxxxSkeleton.java」を実装し、ビルドする
[3-1] スケルトン「XxxxSkeleton.java」を実装する(下記「サンプル」を参照のこと) [3-2] パッケージ名「HellowWorldServer」を右クリックし、[Propaties]-[Java Build path]-[Libraries]-[Add External JARs]で「C:\pg\axis2-1.6.2\lib」配下のJarファイルを全て追加する [3-3] build.xmlを右クリックし、[Run As]-[Ant Build]を選択し、ターゲットを「jar.server」にして「OK」ボタン押下で、ビルドする →ビルドが正常に完了した場合、「HellowWorldServer\build\lib」にAARファイル「HelloWorld.aar」が作成できている
サンプル
HelloWorldSkeleton.java
/** * HelloWorldSkeleton.java * * This file was auto-generated from WSDL * by the Apache Axis2 version: 1.6.2 Built on : Apr 17, 2012 (05:33:49 IST) */ package demo.webservices; /** * HelloWorldSkeleton java skeleton for the axisService */ public class HelloWorldSkeleton implements HelloWorldSkeletonInterface{ /** * Auto generated method signature * * @param sayHello0 * @return sayHelloResponse1 */ public demo.webservices.SayHelloResponse sayHello(demo.webservices.SayHello sayHello0) { // 自分で追加したコード/ここから demo.webservices.SayHelloResponse response = new demo.webservices.SayHelloResponse(); response.set_return("Hello, " + sayHello0.getName()); return response; // 自分で追加したコード/ここまで } }
[4]AARファイルをアップロードする
[4-1] 以下からWARファイル(WAR Distribution)をダウンロードし、 Tomcatの「【TOMCAT_HOME】/webapps」に置くhttp://axis.apache.org/axis2/java/core/download.cgi
[4-2] Tomcatサーバを立ち上げ、以下をブラウザで表示する[http://localhost:8080/axis2/]
[4-3] 「【TOMCAT_HOME】/webapps/axis2/WEB-INF/services」配下に [3-3]で作成したAARファイル「HelloWorldService.aar」を置く ■サーバが遠隔の場合 [4-3'] リンク「Administration」を押下 [4-4'] Username/Password を入力し、「Login」ボタン押下 * デフォルトの場合「Username:admin」「Password :axis2」 * C:\pg\axis2-1.6.2\conf内にある「axis2.xml」内に記載されている [4-5'] リンク「Upload Service」を押下 [4-6'] 「ファイルを選択」ボタンを押下し、手順[3-2]で作成したAARファイルを追加する [4-7'] 「Upload」ボタンを押下 →成功した場合「File HelloWorld.aar successfully uploaded」が表示される
参考文献
http://d0ec7852ef61.seesaa.net/article/114543361.htmlhttp://d.hatena.ne.jp/modalblue/20080817/1218971413
http://morado106.blog106.fc2.com/?mode=m&no=44
http://d.hatena.ne.jp/htz/20090218/1234957870
関連記事
Antで、WSDLファイルからソースの自動生成(クライアント・サーバー)を行う
* 自動生成するのにいちいちコマンドを入力するのは面倒なのでAntを使用するための記事 'http://blogs.yahoo.co.jp/dk521123/34445295.html