Download presentation
Presentation is loading. Please wait.
Published byえりか さわなか Modified 約 7 年前
1
WSDL と JAX-RPC http://www.wakhok.ac.jp/~tatsuo/ws2/ 2005年10月13日
Webサービス II (第3回) WSDL と JAX-RPC 2005年10月13日
2
この時間の目的 Webサービスと JAX-RPC JWSDP 1.6 における取り扱い WSDLの理解 Antツールによる開発
(ビルドファイルの活用)
3
開発作業のポイント サービスの定義は WSDLに (Web Service Definition Language)
(War 形式のファイルを生成、配備) WSDL からクライアント側も構築 サービスの実行までの手順は Antのビルドファイルに
4
復習:WSDL の概説 Document Type は <definitions> 要素 WSDL の名前空間名
" 以下の記述ではPrefixを省略 他に SOAP, XML Schema の定義も利用 内部に5個の要素が順に登場 <types>, <message>, <portTyp>, <binding>, <service>
5
<types> データ型の定義
W3C XML Schema でデータの型を定義 <types> <schema xmlns=" <complexType name="Organization"> <sequence> <element name="id" type="xsd:string"/> <element name="name" type="xsd:string"/> </sequence> </complexType> </schema> </types>
6
<messages> 交換されるデータ
Javaのメソッドの引数、返り値に対応 <message name="HelloIF_sayHelloBack"> <part name="String_1" type="xsd:string"/> </message> <message name="HelloIF_sayHelloBackResponse"> <part name="result" type="xsd:string"/>
7
<portType> インタフェース
サービスのインタフェースに対応 <portType name="HelloIF"> <operation name="sayHelloBack" parameterOrder="String_1"> <input message="tns:HelloIF_sayHelloBack"/> <output message="tns:HelloIF_sayHelloBackResponse"/> </operation> </portType>
8
<binding> 通信の実装へ
サービスの通信手段(Soapメッセージ等) <binding name="HelloIFBinding" type="tns:HelloIF"> <operation name="sayHelloBack"> <input> <soap:body encodingStyle= " use="encoded" /> </input>
9
<service> サービスにアクセス
サービスのエンドポイントなどを指定 <service name="HelloWorldService"> <port name="HelloIFPort" binding="tns:HelloIFBinding"> <soap:address location=“ </port> </service>
10
では、サンプルHelloWorldから 最初に存在するもの HelloWorldService.wsdl その他の設定ファイル
web.xml, config.xml, jaxrpc-ri.xml tomcat.xml Ant による開発 build.xml, build.properties
11
補足: JWSDP 1.6 の Ant 単体のものと同じ+少し便利な環境設定 環境変数 JAVA_HOME, JWSDP_HOME
ANT_HOMEなど jwsdp-shared\bin\setenv.bat を呼び出す %ANT_HOME%\bin は PATHに追加 CATALINA_HOMEも設定不要 (配備情報はbuild.properties, tomcat.xml)
12
HelloWorld のbuild.xml (1)
主要なターゲット サーバ側の構築 generate-server, compile-server create-war, build-war, deploy-war (デフォルトは build = build-war) クライアント側の構築 generalte-client, comile-client run-client
13
HelloWorld のbuild.xml (2)
generate-server ツール wscompile WSDL を元にサーバ側に必要なソースファイルを自動生成 HelloIF.java, HelloIF_Impl.java, それらのコンパイル (自動生成されたファイルは作業領域に)
14
HelloWorld のbuild.xml (3)
compile-server サービスの実装とそのコンパイル( javac ) HelloImpl クラス HelloIF に定義されたメソッド(WSDLで定義)を実装する
15
HelloWorld のbuild.xml (4)
create-war Warアーカイブの生成(第1段階) コンパイルされたバイトコードをまとめる HelloWorld-raw.war
16
HelloWorld のbuild.xml (5)
build-war 実際に配備されるWarファイルの生成 ツール wsdeploy 必要なライブラリ等も付加 HelloWorldディレクトリに HelloWorld.warを生成 (デフォルトの作業) 一時ファイルの消去などの後始末
17
HelloWorld のbuild.xml (6)
deploy-war WarファイルをWebコンテナへ配備 build.properties tomcat.xml の情報を元にコピー
18
HelloWorld のbuild.xml (7)
generate-client ツール wscompile WSDLの情報を元にクライアント側のソースファイルを自動生成、コンパイル HelloIF.java, Stubのクラス他 作業は一時的な作業領域に
19
HelloWorld のbuild.xml (8)
compile-client クライアントのプログラム HelloClientのコンパイル javac で実行
20
HelloWorld のbuild.xml (9)
run-client クライアントプログラムの実行 java コマンドによる
21
作業手順のまとめ Webコンテナ(Tomcat)の起動 サーバ側の構築 ant Warファイルの配備 ant deploy-war
(サービスの開始) クライアント側の構築と実行 ant run-client
22
丁寧に手順を追うと ant generate-server ant compile-server ant create-war
ant build-war ant deploy-war ant generate-client ant compile-client ant run-client
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.