バイナリデータを渡す Web サービス (パート 5): スキーマファイルおよび WSDL ファイルの変更
この節では、WSDL ファイルとスキーマファイルをアプリケーションに追加します。次に、バイトの配列をイメージとして解釈するようファイルを変更します。さらに、スキーマファイルと WSDL ファイルを正しく配置するようにアプリケーションのさまざまな部分を調整します。このプロセスでは、WSDL ファイルとスキーマファイルを扱うのに役立つ、IDE のさまざまなツールを紹介します。
チュートリアルの内容
概要
EJB モジュールの作成
Web サービスの作成
Web サービスのテスト
=> バイナリデータを渡すためのスキーマファイルおよび WSDL ファイルの変更
Swing クライアントの作成
Web サービスのログ作成および最適化
バイナリデータを渡すためのスキーマファイルおよび WSDL ファイルの変更
次の手順では、前のチュートリアルで作成した Web サービス用に、変更した WSDL ファイルと XML スキーマファイルを作成します。変更された WSDL ファイルとスキーマファイルにより、Web サービスと、それを使用するクライアントは、バイナリデータとして渡される JPEG イメージデータを解析できます。
WSDL ファイルおよびスキーマファイルを変更するには、次の手順に従います。
「wsdl 」ノードに到達するまで、Web アプリケーションを展開します。
注: 現在ノードは空です。デフォルトの設定を使用しているため、WSDL ファイルとスキーマは配備時に生成されます。したがって、このノードは、通常はファイルを格納しますが、空です。ここでは、バイトの配列をイメージとして解釈したいため、独自の WSDL ファイルとスキーマを用意する必要があります。それらをこのノードに配置します。
「wsdl 」ノードを右クリックし、「新規」>「その他」を選択します。「新規ファイル」ウィザードが開きます。「XML」 カテゴリを開き、「XML スキーマ」を選択します。スキーマファイルに「FlowerService.xsd 」という名前を付けます。
手順 2 を繰り返します。ただし、今回は「XML」カテゴリから「WSDL ドキュメント」を選択します。ファイルに「FlowerService.wsdl 」という名前を付けます。
「wsdl 」ノードが次の状態になっているはずです。
ブラウザに表示される WSDL ファイルの内容を、前述の手順で作成したテンプレートにコピーします。Web サービスを作成および配備するときに、デフォルト値を使用した場合は、次の場所に WSDL ファイルが作成されるはずです。
http://localhost:8080/FlowerService/FlowerService?WSDL
WSDL ファイルを編集し、名前空間宣言を挿入します。これらの宣言は、WSDL を有効にするために必要です。ファイルの先頭にある次の行を、
<!--
Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.2-hudson-182-RC1.
-->
<!--
Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.2-hudson-182-RC1.
-->
<definitions targetNamespace="http://album.flower/" name="FlowerService">
次の内容に置換します。
<definitions xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
targetNamespace="http://album.flower/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
name="FlowerService"
xmlns:tns="http://album.flower/">
同様に、スキーマファイルをテンプレートファイルにコピーします。スキーマファイルはデフォルトで次の場所にあります。
http://localhost:8080/FlowerService/FlowerService?xsd=1
スキーマファイルを編集し、名前空間宣言を挿入します。これらの宣言は、スキーマファイルを有効にするために必要です。ファイルの先頭にある次の行を、
<!--
Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.2-hudson-182-RC1.
-->
<xs:schema version="1.0" targetNamespace="http://album.flower/">
次の内容に置換します。
<xs:schema xmlns:tns="http://album.flower/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
version="1.0" targetNamespace="http://album.flower/">
次に、WSDL ファイルを変更して、ローカルスキーマファイルが、オンラインのファイルの代わりに参照されるようにします。次に示すように、「デザイン」モードで WSDL ファイルを開きます。
「型」ノードを展開します。「参照先スキーマ」ノードを右クリックし、「追加」>「インポート」を選択します。「インポートの追加」ダイアログが開きます。
次に示すように、これで、スキーマファイルを参照して選択できます。
「了解」をクリックします。
オンラインスキーマファイルを参照しているほかのスキーマ参照は、今後使用しないので削除します。これで、スキーマファイルからノードにアクセスでき、正しく参照していることを示します。
アプリケーションサーバーが、作成したバージョンの WSDL ファイルを使用することを明確に設定する必要があります。そうしないと、アプリケーションサーバーは、Web サービスの注釈からサーバー独自の WSDL ファイルを生成してしまいます。
@WebService(serviceName = "FlowerService",
wsdlLocation = "WEB-INF/wsdl/FlowerService.wsdl")
Web サービスクラスに次のものが表示されます。
最後に、この節全体のポイントである、戻り要素に対して期待されるコンテンツタイプを指定する、変更されたスキーマファイルを作成します。スキーマファイルの戻り要素を特定するには、スキーマファイルを開いて、次に示す行と 39 行目のコードを確認します。これらは両方とも、使用するアプリケーションによっては異なる行に表示される可能性があります。
既存のすべての要素は維持しますが、どちらにも次の属性を追加 します。
xmime:expectedContentTypes="image/jpeg" xmlns:xmime="http://www.w3.org/2005/05/xmlmime"
同じ行に、次のものが表示されます。
これで、Tester アプリケーションに Web サービスを配備し、いずれかのオペレーションを呼び出すと、イメージが正しく返されます。
これで、イメージが正しく返され、独自の Swing クライアントを作成してこれらを取得し、表示できることが Tester アプリケーションで確認されました。
注: 正しく変更されたバージョンの WSDL ファイルとスキーマファイルは、ダウンロードされたサンプルプロジェクト にあります。これらのファイルは、web/WEB-INF/wsdl フォルダにあります。
次の手順:
Swing クライアントの作成
nbj2ee
@
netbeans.org
メーリングリスト に登録することによって、NetBeans IDE Java EE 開発機能に関するご意見やご提案を送信したり、サポートを受けたり、最新の開発情報を入手したりできます。