FeaturesPluginsDocs & SupportCommunityPartners

バイナリデータを渡す Web サービス (パート 5): スキーマファイルおよび WSDL ファイルの変更

この節では、WSDL ファイルとスキーマファイルをアプリケーションに追加します。次に、バイトの配列をイメージとして解釈するようファイルを変更します。さらに、スキーマファイルと WSDL ファイルを正しく配置するようにアプリケーションのさまざまな部分を調整します。このプロセスでは、WSDL ファイルとスキーマファイルを扱うのに役立つ、IDE のさまざまなツールを紹介します。

チュートリアルの内容

このページの内容は NetBeans IDE 6.1 が対象です
  1. 概要
  2. EJB モジュールの作成
  3. Web サービスの作成
  4. Web サービスのテスト
  5. => バイナリデータを渡すためのスキーマファイルおよび WSDL ファイルの変更
  6. Swing クライアントの作成
  7. Web サービスのログ作成および最適化

バイナリデータを渡すためのスキーマファイルおよび WSDL ファイルの変更

次の手順では、前のチュートリアルで作成した Web サービス用に、変更した WSDL ファイルと XML スキーマファイルを作成します。変更された WSDL ファイルとスキーマファイルにより、Web サービスと、それを使用するクライアントは、バイナリデータとして渡される JPEG イメージデータを解析できます。

WSDL ファイルおよびスキーマファイルを変更するには、次の手順に従います。

  1. wsdl」ノードに到達するまで、Web アプリケーションを展開します。
    使用している Web サービスを格納している Java アプリケーション

    注: 現在ノードは空です。デフォルトの設定を使用しているため、WSDL ファイルとスキーマは配備時に生成されます。したがって、このノードは、通常はファイルを格納しますが、空です。ここでは、バイトの配列をイメージとして解釈したいため、独自の WSDL ファイルとスキーマを用意する必要があります。それらをこのノードに配置します。

  2. wsdl」ノードを右クリックし、「新規」>「その他」を選択します。「新規ファイル」ウィザードが開きます。「XML」 カテゴリを開き、「XML スキーマ」を選択します。スキーマファイルに「FlowerService.xsd」という名前を付けます。
  3. 手順 2 を繰り返します。ただし、今回は「XML」カテゴリから「WSDL ドキュメント」を選択します。ファイルに「FlowerService.wsdl」という名前を付けます。

    wsdl」ノードが次の状態になっているはずです。
    使用している Web サービスを格納している Java アプリケーション

  4. ブラウザに表示される 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/">
  5. 同様に、スキーマファイルをテンプレートファイルにコピーします。スキーマファイルはデフォルトで次の場所にあります。

    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/">
  6. 次に、WSDL ファイルを変更して、ローカルスキーマファイルが、オンラインのファイルの代わりに参照されるようにします。次に示すように、「デザイン」モードで WSDL ファイルを開きます。
    使用している Web サービスを格納している Java アプリケーション

    「型」ノードを展開します。「参照先スキーマ」ノードを右クリックし、「追加」>「インポート」を選択します。「インポートの追加」ダイアログが開きます。
  7. 次に示すように、これで、スキーマファイルを参照して選択できます。


    使用している Web サービスを格納している Java アプリケーション

  8. 「了解」をクリックします。

  9. オンラインスキーマファイルを参照しているほかのスキーマ参照は、今後使用しないので削除します。これで、スキーマファイルからノードにアクセスでき、正しく参照していることを示します。
    使用している Web サービスを格納している Java アプリケーション
  10. アプリケーションサーバーが、作成したバージョンの WSDL ファイルを使用することを明確に設定する必要があります。そうしないと、アプリケーションサーバーは、Web サービスの注釈からサーバー独自の WSDL ファイルを生成してしまいます。
    @WebService(serviceName = "FlowerService",
            wsdlLocation = "WEB-INF/wsdl/FlowerService.wsdl")

    Web サービスクラスに次のものが表示されます。
    使用している Web サービスを格納している Java アプリケーション

  11. 最後に、この節全体のポイントである、戻り要素に対して期待されるコンテンツタイプを指定する、変更されたスキーマファイルを作成します。スキーマファイルの戻り要素を特定するには、スキーマファイルを開いて、次に示す行と 39 行目のコードを確認します。これらは両方とも、使用するアプリケーションによっては異なる行に表示される可能性があります。
    使用している Web サービスを格納している Java アプリケーション
  12. 既存のすべての要素は維持しますが、どちらにも次の属性を追加します。

    xmime:expectedContentTypes="image/jpeg" xmlns:xmime="http://www.w3.org/2005/05/xmlmime"

    同じ行に、次のものが表示されます。
    使用している Web サービスを格納している Java アプリケーション

  13. これで、Tester アプリケーションに Web サービスを配備し、いずれかのオペレーションを呼び出すと、イメージが正しく返されます。
    使用している Web サービスを格納している Java アプリケーション

これで、イメージが正しく返され、独自の Swing クライアントを作成してこれらを取得し、表示できることが Tester アプリケーションで確認されました。

注: 正しく変更されたバージョンの WSDL ファイルとスキーマファイルは、ダウンロードされたサンプルプロジェクトにあります。これらのファイルは、web/WEB-INF/wsdl フォルダにあります。

次の手順:

Swing クライアントの作成

メーリングリストに登録することによって、NetBeans IDE Java EE 開発機能に関するご意見やご提案を送信したり、サポートを受けたり、最新の開発情報を入手したりできます。

Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by