このファイルには、Web サービスに影響する制限 (永続的と一時的の両方) の広範囲のリストが含まれています。
Web サービスに関する作業中に発生する可能性のある制限は、
以下のセクションに分かれています。
セキュアな WebSphere Application
Server の使用時に発生する問題
次のエラー・メッセージが表示される場合があります。SSLSocketFactory
error message: java.net.SocketException: java.lang.ClassNotFoundException:
Cannot find the specified class com.ibm.websphere.ssl.protocol.SSLSocketFactory
Web サービス・エクスプローラーの使用、サンプル JSP の生成、HTTPS WSDL ファイルからの Web サービスやクライアントの作成、または Axis Web サービスのデプロイを行う前に、Secure Sockets Layer (SSL) を介してサーバーと通信するようにワークベンチを構成する必要があります。このタスクに関する情報については、以下を参照してください。SSL 接続を使用するセキュア・サーバーでの処理に関する問題 (Problems working with a secured server using SSL connections)
次のエラー・メッセージが表示される場合があります。Error
opening socket: javax.net.ssl.SSLHandshakeException: unknown certifcate
Web サービス・ウィザード
を使用して HTTPS WSDL を取得するには、また、セキュアな WebSphere® Application Server に対して Web サービス・エクスプローラーを
使用するには、セキュアな WebSphere Application Server と
対話するように IBM® JRE を構成するに記述されている手順を実行します。
Web サービス・ウィザードの使用時に発生する問題
- Web サービス・ウィザードのどこかで「キャンセル」を
クリックすると、Web サービスのエントリーがデプロイメント記述子に含まれたり、
生成されたファイルがワークスペースに残されたりすることがあります。
ウィザードを閉じた後、これらのファイルを手動で削除してください。
- Web サービス・ウィザードが EAR の公開に失敗します。
問題: スタブ・ランタイムを使用してリモート・サーバーを
作成すると、EAR は公開されません。
原因: Web サービス・ウィザードでは、
サーバーを始動できるかどうかを判別できません。
解決策: 「サーバー」
ビューを使用できる任意のパースペクティブで、リモート・サーバーを
右クリックして、「プロジェクトの追加および削除」を選択します。
プロジェクトを選択して、それをサーバーに追加します。
- Web サービス・ウィザードが、選択したプロジェクト・タイプを使用できません。
問題:
「Install service on server」オプションが選択された Java EE アプリケーション・クライアント・プロジェクトを
含んでいる EAR で、または EJB を含まない EJB プロジェクトで Web サービス・ウィザードを実行しようとした場合、ウィザードを
使用して Web サービスを生成できません。
原因: Web サービス・ウィザードは、
ウィザードの 3 ページ目で選択されたプロジェクトのタイプをウィザードが使用できることを確認するための
検査を行います。使用できない場合は、ウィザードを続行することはできません。
解決策: ウィザードを取り消して、「Install service on server」を
選択せずに再実行するか、EJB を EJB プロジェクトに追加すると、ウィザードを
続行することができます。
- ワークスペースで WSIL ファイルが選択され、その後で Web サービス・ウィザード
が起動されると、ウィザードは、WSIL ファイルから WSDL ファイルが選択される必要があるためこの選択は
無効であると示します。
これを解決するには、Web サービス・ウィザードで「参照」を
クリックして、特定の WSDL ファイルを選択してください。
- ターゲットの
Web プロジェクトの名前に Latin-1 以外の文字が含まれていると、Web サービス・ウィザードが
Web サービスの作成中にエラーを生成することがあります。この問題は、Web サービス・
コード生成プログラムがプロジェクト名を基にして HTTP URL を計算し、Latin-1 以外の
文字は HTTP URL で許可されないために発生します。
これを解決するには、Latin-1 文字のみを含むプロジェクト名を使用してください。
- ワークスペースに
複数の EAR プロジェクトがある場合に、EJB プロジェクトで
「Enterprise JavaBeans」を
選択して Web サービス・ウィザードを起動すると、ウィザードの起動時に
選択したエンタープライズ Bean が選択されていないことがあります。「サービス実装の選択」ダイアログ・ボックスでは、
選択されている EAR プロジェクトは、Bean を含んでいる EJB プロジェクトと関連付けられた EAR ではなく、
ワークスペース内のアルファベット順で最初の EAR です。これを解決するには、「サービス実装の選択」ダイアログ・ボックスで、
必要な EAR プロジェクトを手動で選択します。
- Web サービス・ウィザードの
最初のページで Web サービス・トラフィックをモニターするよう選択すると、
時折、TCP/IP モニター・ビューが自動的に表示されないことがあります。を
選択することで、ビューを手動で開くことができます。
Web サービスの要求と応答はこのビューに表示されます。
WebSphere JAX-WS ランタイム環境および JAXB の使用時に発生する問題
Web サービス・クライアント作成時の制限
Web サービス・クライアントを EJB プロジェクトにデプロイするとき、
プロキシー構成ページで、この Web サービス・クライアントのスコープとなる EJB を
選出する必要があります。この選択は、JSR-109 によって定義される要件です。
JSR-109 では、component-scoped-refs 要素のコンポーネント名は、
モジュール内にある EJB の ejb-name と一致する必要があります。
少なくとも 1 つの EJB がプロジェクトにあれば、エラーは発生しません。しかし、プロジェクトに EJB が 1 つもない場合は、プロキシー構成ページのコンボ・ボックスは編集可能で、
サフィックスが「EJB」である WSDL のサービス名に等しいデフォルト値を持ちます。さらに、クライアント・ウィザードが警告を表示し、
Web サービス・クライアントが既存の EJB にスコープされていないため、デプロイメントが不完全であることを示します。webservicesclient.xml で
使用されているコンポーネント名と同じ名前の EJB を作成することによって、このエラーを修正できます。
ただし、ウィザードで取り消すことによってクライアント作成を終了することにした場合、
ウィザードは不完全な component-scoped-refs を webservicesclient.xml から削除しません。
再デプロイを行う前に、この不完全な component-scoped-refs を手動で削除
してください。
Web サービスのサンプル JSP の制限
- Web サービスのサンプル JSP は、配列やコレクションをパラメーターとして取り入れるメソッドを
サポートしていません。そのようなメソッドは、サンプル JSP の「メソッド」ペインから除外されています。
Web サービス・エクスプローラーに関する問題
- Web サービス・エクスプローラーが、
複数のインライン・スキーマを使用する WSDL ファイルをロードすると、これらの
スキーマ全体で参照される型に対して、警告メッセージが生成されます。「<qualified_type_name> 型の参照が解決されていません」という
意味の警告メッセージです。これらは警告であり、エラーではなく、Web サービス・エクスプローラーが操作を
開始する機能を妨げないため、安全に無視できます。
- Web サービス・
エクスプローラーでは、NTLM などの HTTP 基本認証以外のプロトコルを使用する
プロキシー・サーバーを認証することによって Web サービスを起動することはできません。このような理由で、Web サービス・エクスプローラーが選択した Web サービスに
接続できない場合は、結果ペインに、「IWAB0135E 予期しないエラーが発生しました。」
エラーと HTTP 応答からの検索時に発生した障害に関する情報が表示されます。この問題を解決するには、HTTP 基本認証プロキシー・サーバーに切り替えてください。
- スキーマがシーケンスを含む選択項目を使用する場合に、ソース・ビューから書式ビューに
切り替えると、Web サービス・エクスプローラーで問題が発生します。complexType で選択要素を使用していて、選択項目にシーケンスがある複数の要素が
含まれている場合に、書式ビューからソース・ビューに切り替えると、Web サービス・
エクスプローラーは、データを失わずに、ソース・ビュー内の対応する XML フラグメントを
書式ビューに正しく変換することができないことがあります。この問題を解決するには、
データを最初に入力するときに、書式ビューからシーケンスを開始します。このように構成されている場合は、ソース・ビューの使用はお勧めできません。ソース・ビューを使用する場合は、書式ビューに切り替え直さないでください。
- Web サービス・エクスプローラーは、
相対インポート URL を解決せずに WSDL をインポートします。
Web サービス・エクスプローラーの使用時には、WSDL ページからワークスペースに
WSDL をインポートすると問題が発生します。「WSIL 文書へのサービス参照としてインポート」オプションが
選択されている場合は、これによって WSDL の元の URL が参照されるため、すべての
相対インポートに到達可能です。「WSDL 文書のインポート」が
選択されていて、WSDL ファイルに相対インポートが含まれている場合、
これらのインポートには到達不能であり、WSDL のコピーをツールの別の場所で
処理するのは困難か不可能になります。インポートする WSDL に
相対インポートがある場合は、WSIL メソッドを使用してください。WSDL のコピーが必要な場合は、インポート後に
相対インポートがあるかどうかを手動でチェックして、リンク切れを解決してください。
Web サービス・コマンド・ライン・ツールを使用するときの問題
- Java EE 1.4 を使用してコマンド・ライン・ツールで生成された EJB クライアントを含んでいる EAR を
ワークスペースにインポートすると、コンパイル・エラーが発生
するという結果になります。このエラーをフィックスするには、
EJB プロジェクトを右クリックして、「プロパティー」を選択します。
「Java ビルド・パス」に進み、「ライブラリー」タブを選択します。
EJBClientProject/imported_classes(クラス・フォルダー) エントリーを削除します。
EJBServiceClient/imported_classes/Meta-inf/classess クラス・フォルダーを追加します。
「OK」をクリックします。
- コマンド行ツールで Java EE 1.4
を使用してワークスペースに生成されたアプリケーション・クライアントを含む EAR をインポートした後は、ClassNotFoundException エラーが発生します。
このエラーをフィックスするには、アプリケーション・クライアント・プロジェクトを右クリックして、
「プロパティー」を選択します。
「Java ビルド・パス」に進み、「ライブラリー」タブを選択します。
ApplicationClientProject/imported_classes(クラス・フォルダー) エントリーを削除します。
ApplicationClientProject/imported_classes/Meta-Inf/classess クラス・フォルダーを追加します。
「OK」をクリックします。
- Axis ランタイムをターゲットとする Web サービス Ant タスクは、Web サービスの生成は処理しますがデプロイメントは処理しません。その結果、Ant タスクを使用して作成される Axis
Web サービスは、Apache Axis 固有の「AdminClient」ユーティリティーを使用して
サービスを手動でデプロイするまで、実行中のサーバーで到達不能になります。
Web プロジェクトの WebContent/WEB-INF ディレクトリーの下のサブディレクトリーに生成されている deploy.wsdd ファイルを、Axis AdminClient ツールを使用して手動で Axis にデプロイしてください。詳細については、Axis 1.4 の「User's Guide」の『Using the AdminClient』セクションを参照してください。