Webサービス II (第1回)

Webサービス II (第2回)
http://www.wakhok.ac.jp/~tatsuo/ws2/
2005年10月6日
植田龍男
この時間の目標



JWSDP 1.6 のインストール
(Webコンテナの準備)
構成の確認
jaxp, jaxb, jaxr, jaxrpc …
JAX-RPC と WSDL
サンプル HelloWorld で確認
作業手順
一般ユーザでログオン
 必要なアーカイブとインストーラの入手
( y:\ws2 から可能)
tomcat50-jwsdp.zip
jwsdp-1_6-windows-i586.exe
 tomcat50-jwsdp.zip の展開
(適当な場所に、 Z:\tomcat50-jwsdp )
 jwsdp-1.6 インストールウィザードの実行

JWSDP 1.6 インストール(1)
インストールウィザードの開始
JWSDP 1.6 インストール(2)

Javaの環境を選択( J2SE 5.0 を使用)
JWSDP 1.6 インストール(3)

Webコンテナの選択(Tomcat50-jwsdp)
JWSDP 1.6 インストール(4)

Tomcatの管理ユーザの設定
JWSDP 1.6 インストール(5)

設定事項の確認画面
JWSDP 1.6 インストール(6)

インストールの開始(数分間待ちます)
補足:JAXPの実装の変更




既存のJ2SE 1.4.2, J2SE 5.0 のコアにも
JAXPのパッケージ、パーサ等の実装
J2SE 1.4 の実装は機能不足
J2SE 5.0 よりも JWSDP 1.6 のJAXPの
バージョンが新しい
置き換える方法
1) endorsedディレクトリにコピー
2) java,javac にプロパティ情報で指定
インストールできたことの確認

Tomcat をメニューから起動、ブラウザでアクセス
Tomcat50-jwsdp のトップ画面

ドキュメントとサンプルが表示
Tomcatの管理画面

インストール時に設定したパスワードを使用
アプリケーション・マネジャ

Webアプリケーションの起動・停止が可能
JWSDP 1.6のディレクトリ構成
WSDL の概説



Document Type は <definitions> 要素
WSDL の名前空間名
"http://schemas.xmlsoap.org/wsdl/
以下の記述ではPrefixを省略
他に SOAP, XML Schema の定義も利用
内部に5個の要素が順に登場
<types>, <message>, <portTyp>,
<binding>, <service>
<types> データ型の定義
W3C XML Schema でデータの型を定義
<types>
<schema
xmlns="http://www.w3.org/2001/XMLSchema">
<complexType name="Organization">
<sequence>
<element name="id" type="xsd:string"/>
<element name="name" type="xsd:string"/>
</sequence>
</complexType>
</schema>
</types>

<messages> 交換されるデータ
Javaのメソッドの引数、返り値に対応
<message name="HelloIF_sayHelloBack">
<part name="String_1" type="xsd:string"/>
</message>
<message
name="HelloIF_sayHelloBackResponse">
<part name="result" type="xsd:string"/>
</message>

<portType> インタフェース
サービスのインタフェースに対応
<portType name="HelloIF">
<operation name="sayHelloBack"
parameterOrder="String_1">
<input
message="tns:HelloIF_sayHelloBack"/>
<output
message="tns:HelloIF_sayHelloBackResponse"/>
</operation>
</portType>

<binding> 通信の実装へ
サービスの通信手段(Soapメッセージ等)
<binding name="HelloIFBinding"
type="tns:HelloIF">
<operation name="sayHelloBack">
<input>
<soap:body
encodingStyle=
"http://schemas.xmlsoap.org/soap/encoding/"
use="encoded" />
</input>

<service> サービスにアクセス
サービスのエンドポイントなどを指定
<service name="HelloWorldService">
<port name="HelloIFPort"
binding="tns:HelloIFBinding">
<soap:address
location=“http://localhost:8080/hello"/>
</port>
</service>
