Web サービス設定

Web サービス設定を行う場合は、以下のステップを実行してください。
  1. 「ウィンドウ」 > 「設定」の順にクリックする。「設定」ノートブックが開きます。
  2. Web サービス」を展開し、設定したい設定カテゴリーをクリックする。
  3. Web サービス作成時のデフォルト値として設定したいチェック・ボックスを全部選択する。
  4. OK」をクリックする。変更が適用され、「設定」ノートブックが閉じます。
各種オプションの詳細については、該当するオプションを選択してから F1 キーを押してください。

各種 Web サービス・ツールを使用して、以下の設定ができます。

後方互換性
「後方互換性」の設定によって、以前の WebSphere® Studio リリースと互換性あるオプションを使用できます。 この設定は、IBM® SOAP ランタイム環境を使用する Web サービスを使用している場合のみに適用されます。
次の名前に、Java™ ID として使用が認められていない下線などの文字を使用した場合、以下の指示に従ってください。
  • Java Bean または EJB から Web サービスを作成した場合の Bean 属性の名前
  • Web サービス・クライアント・プロキシーを作成した場合の、XSD ファイルの複合型にあるエレメント名
Web サービスの後方互換性設定の「V4 のマッピング・スタイルの使用」は選択しないでください。 例えば、mybean_name という属性を指定した Bean という名前の Bean がある場合に「V4 のマッピング・スタイルの使用」を指定すると、 実行時に次のようなエラーが出されます: 例外: [SOAPException: faultCode=SOAP-ENV:Client; msg=mappings.BeanContentType をアンマーシャルできません。 mappings.BeanContentType クラス用のメソッド名 setMybeanName を持つ setter メソッドを検出できません。]
コード生成
「コード生成」の設定によって、以下のオプションの設定が可能になります。
  • IBM SOAP ランタイム環境を使用して Web サービスを作成中の場合
    • WSDL インポート・ステートメントに絶対ロケーション URI を使用する。
    • コード生成時にインライン・スキーマを使用する。
    • プロキシー・ファイルへのエレメント・ベースのマッピングを使用可能にする。
    • XML 単純データ型を Java プリミティブ型ではなく、java.lang ラッパー・クラスにマップする。
  • IBM WebSphere ランタイム環境を使用して Web サービスを作成中の場合
    • WSDL から Java を生成するときに、データ・バインディングを使用不可にし、SOAP エレメントを使用する。 デフォルトでは、Web サービス・ウィザードは、JAX-RPC ルールに従い、 サポートされていない XSD 型のみを SOAPElement オブジェクトにマップします。 このオプションを選択すると、エミッターは、すべてを SOAPElement オブジェクトにマップします。 これにより、EMF または SDO などの XSD から Java への代替マッピングを選択でき、それらのマッピングを Service Endpoint Interface 全体に矛盾なく適用できます。
    • ロード可能な Java クラスの上書きを行わない。 これを選択した場合、Web サービス・ウィザードは、 以下のいずれのターゲット・プロジェクトにも Java クラスの書き込みを行いません。
      • プロジェクトに存在していないターゲット・プロジェクト
      • アプリケーションがサーバーで稼働している際に、 ターゲット・プロジェクトからロード可能な、プロジェクト、モジュール、 または JAR ファイルに存在していないターゲット・プロジェクト
      このオプションを選択しない場合は、 ウィザードが Java クラスをターゲット・プロジェクトに書き込む場合があります。 そのターゲット・プロジェクトは、その他のプロジェクト、モジュール、 または JAR ファイルにある同じ名前を持つ既存のクラスをマスクします。 これにより、ランタイム環境エラーおよびコンパイル・エラーが起こることがあります。

      現在の問題は、 「ハンドラー構成」ウィザードでハンドラーを追加した後で、ハンドラー Java ファイルがまったく同一のロケーションに既に存在していて、 かつ「ロード可能な Java クラスを上書きしない」を選択しなかった場合を除いて、 ウィザードが新しいスケルトン・ハンドラー Java ファイルをプロジェクトのプライマリー・ソース・フォルダーに生成することです。 このウィザードは EAR のどこか他の場所に同じ完全修飾名をもつハンドラーが存在するかどうかの検査は行いません。 その結果、プロジェクトの異なるソース・フォルダーや EAR の異なるモジュールの中など、 EAR のどこか他の場所に既に存在しているハンドラーをウィザードで追加すると、 このウィザードは新しいスケルトン・ハンドラーを書き込むことになり、元のハンドラー・クラスを隠してしまいます。 そのような場合には、ウィザードによって生成されたスケルトン・ハンドラーを削除してください。

    • Web サービス・サーバー・ターゲットとして WebSphere v5.1 Application Server を選択した場合には、 WebSphere v5.1.1 Web サービス・エミッターを使用する。 Web サービス・ツールは、Web サービスのターゲットがどのバージョンの WebSphere Application Server であるかを検出できないので、 サーバーのバージョンに対して正しいレベルのエミッターを選択することが大切です。 このチェック・ボックスを選択解除したままにすると、 ツールは WebSphere v5.1.0 エミッターを使用してコードを生成し、 このコードは WebSphere Application Server v5.0.1 および v5.1.1 のいずれでも機能します。 チェック・ボックスを選択すると WebSphere v5.1.1 エミッターが使用され、 このコードは WebSphere Application Server v5.1.1 でのみコンパイルすることができます。
IBM SOAP ランタイム環境を使用して、エレメント・ベース・マッピングを生成するときの注意:
  • IBM SOAP ランタイム環境を使用するとき、 「エレメントを使用したマッピングを可能にする」を選択すると、 Web サービス・ウィザードが通常の型を使用したマッピングの他に、 エレメントを使用したマッピングの生成を完全に行えるようになりました。

    この設定をデフォルトの「使用可能」にしていないと、 他のベンダーの Web サービス・ランタイム環境が「xsi:type」プロパティーのないメッセージを送信する場合に、 Apache/IBM SOAP ランタイム環境はその環境と相互運用性をもちません。 他のベンダーの Web サービス・ランタイム環境は、 xsi:type プロパティーの組み込みについてそれぞれ異なるポリシーを使用します。  このプロパティーを必ず組み込む場合もあり、あるものはそれらを組み込まない場合もあります。 ある場合は構成選択項目を提供します。 配列などの特定の型については、xsi:types を省略する場合もあります。

    次のエラーは、IBM/Apache SOAP ランタイム環境でよく発生するエラーです。

    targetException=java.lang.IllegalArgumentException: エンコード・スタイルの 'http://schemas.xmlsoap.org/soap/encoding/' を使用して、 「:MyElement」をデシリアライズするデシリアライザーを検出できませんでした。 この設定を使用可能にすると、エレメントを使用したマッピングは次のものに生成されます。
    • ボトムアップ Java Bean/EJB シナリオおよび WSDL スケルトン・シナリオのデプロイメント記述子ファイル。
    • クライアント・シナリオ内のプロキシー。

    エレメント・ベースのマッピング書式は、以下のとおりです。

    <isd:map encodingStyle="encoding style" xmlns:x="some-namespace" qname="x:some-local-name" xml2JavaClassName="some-deserializer-class-name"/>

    エレメント・ベースのマッピングの生成は以下のものに対して行われます。

    • wsdl:message 入力のそれぞれに対して定義されているそれぞれのパーツ。
    • スケルトンとプロキシーのシナリオの場合のみ、 各パーツは各 wsdl:message 出力に定義されます。
    • WSDL ファイル内のパーツが参照するそれぞれの複合型にあるそれぞれのルート・エレメントまたはローカル・エレメント。

    WSAD Web サービス・ウィザードは SOAP および XSD 仕様に従って、 エレメント・ベースのマッピング内のエレメント名が修飾される (つまり、ネームスペースを持つ) べきかどうかを決定します。

    WSAD Web サービス・ウィザードはこれらの規則に従って修飾されるエレメント名か、 修飾されないエレメント名かを決めます。

    • WSDL のパーツ名は非修飾名になります。
    • XSD のルート・エレメントは修飾名になります。
    • スキーマに elementFormDefault="unqualified" が指定されている場合は (スキーマに elementFormDefault 属性がない場合はこれがデフォルト)、XSD 生成非修飾名内のローカル・エレメント。
    • スキーマに elementFormDefault="qualified" が指定されている場合は、XSD 生成修飾名内のローカル・エレメント。

    一部のランタイム環境では、 XSD スキーマの「elementFormDefault」属性を介して修飾エレメントの使用を指定するスキーマがある場合でも、 SOAP メッセージ内で非修飾エレメントが生成されることが分かっています。 この場合は、サービスの WSDL または XSD を手動で編集して、elementFormDefault を「unqualified」に変更する必要があります。

    非ネームスペース修飾のエレメント使用マッピングの例を示します。

    <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:x="" qname="x:name" xml2JavaClassName="org.apache.soap.encoding.soapenc.StringDeserializer"/>

    ネームスペース修飾のエレメント使用マッピングの例を示します。

    <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:x="http://www.ibm.com/" qname="x:name" xml2JavaClassName="org.apache.soap.encoding.soapenc.StringDeserializer"/>

    エレメントを使用したマッピングは、1 つのエレメント名に対して 1 つだけしか生成されないことに注意してください。 つまり、スキーマが同じエレメント名を異なる型に複数回使用すると、 エレメント使用のマッピングは 1 つだけという基本により、エレメントは効果的に無作為で 1 つだけ選択されます。 名前が同じで型が異なる他のエレメントは、デシリアライズできません。 スキーマがエレメントおよび WSDL パーツに同じ名前を使用した場合も同様です。

  • マップの配列または Hashtable の配列を返すサービス Bean を使用して開始するとき、 「エレメント・ベースのマッピング」オプションが使用可能になっていると、 生成される SOAP プロキシーは戻りの型を誤って java.lang.String[] にマップします。 ランタイム中に ClassCastException が発生します。 この問題を回避するには、Web サービス・クライアント・ウィザードを新規に作成した WSDL で実行して、 SOAP プロキシーをクライアント・プロジェクトに再生成します。
  • Web サービス・コード生成設定「エレメントを使用したマッピングを使用可能にする」を選択して、 WebSphere Application Server V4 へのデプロイを選択すると、 ISD ファイルと dds.xml に以下のエントリーが作成されます。

    <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:x="" qname="x:some-name" xml2JavaClassName="some-serializer"/>

    XML エディターは、次のエラーにフラグを立てることができます。

    属性 "xmlns:x" の値が無効です。 接頭部付きのネームスペース・バインディングが空でない可能性があります。

    WebSphere Application Server V4 の場合、これは問題ではありません。 ただし、Xerces 2.x (XML4J 4.x) 以降 (WebSphere Application Server V5 サーバーなど) を使用する他のサーバーにこの dds.xml をデプロイしないでください。 そうでないと、サーバーが dds.xml ファイルをロードするときに同様の Xerces 構文解析エラーが発生します。 Web サーバーのシナリオに従って正しいサーバー・タイプを選択して、dds.xml を再生成してください。 これにより、そのサーバー・タイプに対して正しい dds.xml が生成されます。

    また、ISD ファイルから Web サービスをデプロイしようとすると、同様の Xerces 構文解析エラーが発生します。 これは、ファイルを手動で下記のフォーマットに編集することで回避できます。

    <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" qname="some-name" xml2JavaClassName="some-serializer"/>

JDBC ドライバー
「JDBC ドライバー」の設定を使用して、JDBC ドライバーの JAR ファイルを追加できます。 Linux では、JDBC ドライバーの JAR ファイルの位置が簡単に確認できない場合があります。 そのため、どの JAR ファイルを使用するかを指定できるように、この設定が追加されました。 この設定は、Linux 上の DADX 検証コードでのみ使用されます。
ポップアップ・ダイアログ選択
ダイアログ設定により、ポップアップ・アクションの実行時に、どのダイアログ・ボックスを表示するかを決定できます。 Web サービス・ウィザードの先頭ページで「このダイアログを再び表示しない」を選択して、 いずれかのダイアログを使用不可にした場合、非表示に選択したダイアログの横にあるチェック・ボックスを消去することにより、 その変更を取り消すことができます。
プライベート UDDI レジストリー
このページを使用して、UDDI カテゴリー・データ欄およびストリング区切り文字を設定することができます。
プロジェクト・トポロジー
プロジェクト・トポロジーの設定によって、以下を実行できます。
  • Web サービス・クライアントを生成するときに、 Web サービス・ウィザードが作成するデフォルトのクライアント・プロジェクト・タイプを選択する。 また、クライアント・プロジェクト・タイプがウィザードでリストされる 順番を設定することもできます。 この選択はデフォルトにすぎず、代替のプロジェクト・タイプをウィザードで選択できる点に注意してください。
  • Web サービスと Web サービス・クライアントを同じ EAR プロジェクトで生成するか、または異なる EAR プロジェクトで生成するかを選択する。 サービスとクライアントを異なる EAR プロジェクトに生成すると、 両方が同じ EAR プロジェクトに存在する場合に競合が起こる可能性は低減されますが、 システム・リソースをより多く使用します。
リソース管理
「リソース管理」の設定によって、 Web サービスを作成するときに使用するファイルおよびフォルダーの作成とデフォルトの上書きを決定できます。
シナリオ・デフォルト
「シナリオ・デフォルト」の設定によって、 Web サービスを作成するときに使用する以下のシナリオ・デフォルトを設定できます。
  • Web サービスをデフォルトで選択するタイプ。
  • ウィザードで Web サービスを開始するかどうか。
  • Web サービスを UDDI レジストリーに公開できるよう、デフォルトで Web サービス・エクスプローラーを起動するか。
  • プロキシーを生成して、生成されたプロキシーをデフォルトのタイプにするか。
  • Web サービスをテストできるよう、デフォルトで Web サービス・エクスプローラーを起動するか。
  • SOAP パケットをモニターし、オプションでそれらの WS-I 準拠をテストできるよう、 Web サービス SOAP トラフィックを TCP/IP モニターを通るように経路指定したいか。
これらのデフォルト設定はすべてウィザード内でオーバーライドできます。
サーバーとランタイム
Web サービス・ウィザードでデフォルトで選択されるようにしたいサーバー、Web サービス・ランタイム環境、 および J2EE バージョンを選択します。 これらのデフォルト設定はすべてウィザード内でオーバーライドできます。
SOAP トランスポート
デフォルト・トランスポートを「HTTP 上の SOAP」または「JMS 上の SOAP」のどちらにするかを選択します。 この設定は、WebSphere ランタイム環境を使用する Web サービスを使用している場合のみに適用されます。
テスト機能デフォルト
ウィザードに自動的にテスト機能を起動させるかどうか、またテスト機能の希望するタイプを選択することができます。
Web サービス・エクスプローラー
Web サービス・エクスプローラー設定では、SOAP 配列のスキーマを無視するかどうかを選択できます。 この設定は、IBM SOAP ランタイム環境を使用する Web サービスをテストするときにお勧めします。
WSDL ファイル
WSDL エディターで WSDL ファイルを作成する場合に、デフォルト・ターゲット・ネームスペースを設定することができます。 デフォルトの変更を選択しないと、WSDL ファイルのターゲット・ネームスペースは http://tempuri.org となります。
WS-I 準拠
「WS-I 準拠」の設定では、WS-I Simple SOAP Binding Profile (SSBP) および WS-I Attachement Profile (AP) に対する準拠レベルを選択できます。 この設定は主に、WebSphere ランタイム環境を使用する Web サービスに対して適用されます。 IBM SOAP ランタイム環境および Apache Axis ランタイム環境を使用する Web サービスは、 通常 WS-I 準拠ではありません。 WS-I 非準拠が「タスク」ビューにリストされていて WS-I 準拠のレベルを変更しても、 「タスク」ビューは自動的に更新されませんので、注意してください。 「タスク」ビューから警告を除去する前に、ワークスペースを再検証する必要があります。
ご利用条件 | フィードバック
(C) Copyright IBM Corporation 1999, 2005. All Rights Reserved.