既存の WebSphere v6 プライベート UDDI レジストリーに上書きして WebSphere v6 DB2 プライベート UDDI レジストリーをデプロイした後、このレジストリーにアクセスできないという問題が起こることがあります。UDDI デプロイメント・ウィザードの終了時に、UDDI アプリケーションはサーバー上で実行されていますが、サーバー構成は認識されません。症状としては、UDDI Ear が DB2 UDDI レジストリーと対話できなくなります。このため、UDDI アプリケーションに対して実行されるすべてのコマンドが、エラー (レジストリー・ノードの初期化エラー) を出して失敗します。ユーザー定義の分類法を追加する場合もこれに該当し、この場合は Axis 障害がスローされます。
次善策:
1. 予防: WebSphere v6 DB2 UDDI レジストリーをデプロイする前に、UDDI ウィザードを使用して、すでにインストール済みの UDDI レジストリーをすべて除去します。その後、UDDI ウィザードを再度起動して、WebSphere V6 DB2 プライベート UDDI レジストリーをデプロイします。
2. インストール済みレジストリーを修正する場合: 前のレジストリーに上書きして WebSphere V6 DB2 UDDI レジストリーをインストールして問題が起こった場合は、サーバーの管理コンソールから UDDIRegistry アプリケーションを停止し、再始動できます。
「ウィンドウ」->「設定」->「Web サービス」>「WS-I 準拠」、およびプロジェクト・プロパティーにある WS-I AP 準拠レベルの設定値は、「推奨」または「必要」に設定されても WSDL WS-I 検証に影響を及ぼしません。 これらの設定は、デフォルトで「無視」に設定されています。
次善策はありません。WS-I WSDL 検査機能がプロファイルへの準拠について WSDL をテストするために使用する WS-I 添付プロファイルのテスト表明文書は、WS-I 組織による公開がこの IBM Rational Developer 製品のリリースには間に合わず、組み込まれていません。テスト表明文書が公開された後、この設定を使用可能にするための暫定修正が発行されます。
「Web サービス」ウィザードまたは「Web サービス・クライアント」ウィザードを起動する前に、サービスまたはクライアントのプロジェクトが存在していた場合は、「サービス・デプロイメント構成」ページまたは「クライアント環境構成」ページの選択内容に関係なく、ウィザードは既存プロジェクトをすでに含む EAR を常に使用します。どちらかのウィザードを起動する前に、既存プロジェクトが EAR に追加されていなかった場合、ウィザードは次のエラーを出して失敗します。
IWAB0213E サーバー始動中のエラー
詳細:
IWAB0213E サーバー始動中のエラー。
org.eclipse.core.runtime.CoreException: WebSphere v5 は J2EE 1.2 および 1.3 エンタープライズ・アプリケーションのみをサポートします。
at com.ibm.etools.websphere.tools.v51.internal.WASTestServerWorkingCopy.modifyModules(Unknown Source)
...この制限を回避するには、Web サービスまたは Web サービス・クライアントのために使用する予定のプロジェクトが、ウィザードの起動前にすでに EAR に追加されていることを確認してください。この規則の唯一の例外は、Tomcat サーバーを使用するプロジェクトです。この場合、これらのプロジェクトを EAR に追加する必要はありません。
ターゲット・サーバー用のモニターを手動で作成し (「サーバー (Servers)」タブの「モニター (Monitoring)」->「プロパティー...」を使用)、「Web サービス」ウィザードを実行して、「Web サービス」ウィザードの最初のページで「Web サービスのモニター」を選択すると、ウィザードは処理中に次のエラーを出して失敗する場合があります。
IWAB0014E 予期しない例外が発生しました。null
java.lang.NullPointerException
at com.ibm.etools.webservice.consumption.command.common.CreateMonitorCommand.hasContentWebServices(CreateMonitorCommand.java:114)
...この問題を回避するには、「Web サービスのモニター」を使用不可にしてウィザードを再実行するか、サーバーの「モニター (Monitoring)」->「プロパティー...」を開き、モニターを除去してから、「Web サービスのモニター」を使用可能にしてウィザードを再実行してください。
「Web サービス」ウィザードと「Web サービス・クライアント」ウィザードの最初のページでは、「Java プロキシー」(通常のデフォルト) と「Web サービス・ユーザー定義関数」の 2 つのクライアント・プロキシー・タイプが選択可能です。「Web サービス・ユーザー定義関数」を選択して、ウィザードを終了するか「Web サービス選択ページ」より先に進もうとすると、ウィザードはエラー「IWAB0234E 内部エラーが発生しました。詳細: null (IWAB0234E An internal error occurred. Details: null)」を出して失敗します。
次善策: Web サービス・ユーザー定義関数を作成するために「Web サービス」ウィザードを使用しないでください。代わりに、「新規」->「その他 (Other)」->「データ (Data)」->「Web サービス・ユーザー定義関数」を選択します。
「Web サービス・エクスプローラーの起動」ボタン、および「実行」>「Web サービス・エクスプローラーの起動」メニュー項目は、J2EE パースペクティブ以外からは選択できません。
J2EE パースペクティブを開いて Web サービス・エクスプローラーを起動するか、該当する場合はワークスペース内で WSDL 文書または Web サービスを右クリックして、「Web サービス」->「Web サービス・エクスプローラーでのテスト」を選択します。
Web サービス・プロキシーの生成を使用可能にして、WebSphere Application Server v5 用の DADX または URL Web サービスの作成シナリオを実行すると、ウィザードは次のようなエラーを出して失敗する場合があります。
IWAB0107E WSDL パーツの分析を試行中にエラーが発生しました: 入力。
WSDLException: faultCode=PARSER_ERROR: http://localhost:9080/SomeProject/SomeGroup/something.dtd/XSD のロード中のエラー: 接続が拒否されました: 接続: 折り返し例外
java.net.ConnectException: 接続が拒否されました: 接続
...この問題が起こる原因は、ウィザードがサーバーを適時に再始動しなかったために、Web サービス・クライアント・コード生成プログラムが WSDL または XSD をサーバーから取得できないことです。 この問題は、少なくとも 2 つの方法で回避できます。
- 「Web サービス」ウィザード内で、Web サービス・クライアントをホスティングするサーバーとして、Web サービスをホスティングするサーバーとは別のものを選択する。
- 「Web サービス」ウィザード内で、プロキシー・コード生成を使用不可にする。「Web サービス」ウィザードを完了した後、「Web サービス・クライアント」ウィザードを別個に実行します。
「Web サービス」ウィザードを使用して、まだ存在しないサーバー用の Web サービスを作成すると、ウィザードはサーバーを作成しますが、次のエラーを出して失敗する場合があります。
"IWAB0534E EAR プロジェクトをサーバー構成に追加できません。"
詳細: java.lang.IllegalArgumentException:
at java.lang.Throwable.<init>(Throwable.java:59)
at java.lang.Throwable.<init>(Throwable.java:73)
at org.eclipse.core.internal.runtime.Assert.isLegal(Throwable.java)
at org.eclipse.core.internal.runtime.Assert.isLegal(Throwable.java)
at org.eclipse.core.runtime.Status.setMessage(Throwable.java)
at org.eclipse.core.runtime.Status.<init>(Unknown Source)
at com.ibm.wtp.server.core.internal.ServerWorkingCopy.modifyModules(Unknown Source)
...この問題を回避するには、ウィザードを再起動して再試行してください。ウィザードは、前のウィザードが失敗する直前に正常に作成したサーバーを使用します。
まだインストールされていないサーバーのタイプをターゲットとしたプロジェクト内で、「Web サービス」ウィザードを使用して Web サービスを作成すると、ウィザードは次のメッセージを出して失敗する場合があります。
IWAB0213E サーバー始動中のエラー。
org.eclipse.core.runtime.CoreException: WebSphere v5.1 Test Environment @ localhost という名前のサーバーが正しく始動しませんでした。コンソールのエラー・メッセージを確認してください。
at com.ibm.wtp.server.core.internal.Server.synchronousStart(Unknown Source)
...この問題が起こる原因は、ウィザードの「サーバー・デプロイメント構成 (Server Deployment Configuration)」ページまたは「クライアント環境構成」ページで、ターゲット・サーバーがインストール済みで使用可能かどうかの判定を最初に行わずに、ウィザードがサーバーをプロジェクトのターゲット・サーバーにデフォルトで設定することです。この状態は、他の環境にインストールされた本製品を使用して他のユーザーが作成したプロジェクトのインポート時に、最もよく起こります。 次善策としては、「サーバー・デプロイメント構成 (Server Deployment Configuration)」ページまたは「クライアント環境構成」ページで、ワークスペースに存在するサーバーを明示的に選択してください。
StockQuoteAxis サンプルのインポート後、StockQuoteAxis プロジェクトまたは StockQuoteAxisClient プロジェクトを Tomcat 4.0 または 4.1 サーバーに追加しようとすると、「サーバーに追加できる、またはサーバーから除去できるプロジェクトはありません (There are no projects that can be added or removed from the server)」というメッセージが出されます。Tomcat 4.0 または 4.1 サーバー上でサンプル JSP の実行を試みると、「選択したサーバーは J2EE Web モジュール仕様のバージョン 1.4 をサポートしていません (The selected server does not support version 1.4 of the J2EE Web module specification)」というメッセージが出されます。
この問題が起こる理由は、サンプルの StockQuoteAxis と StockQuoteAxisClient の両 Web プロジェクトが、J2EE 1.4 / Servlet 2.4 ランタイム上での実行を意図して作成されていて、Tomcat 4.0 または Tomcat 4.1 のどちらも Servlet 2.4 仕様をサポートしていないことです。次の 2 つの次善策があります。
- サンプルを Tomcat 5.0 サーバー上で実行する。
- サンプル・ギャラリーにある「ユーザー自身でビルド」の指示のとおりに行い、Web プロジェクトのターゲットとして Tomcat 4.0 または 4.1 を選択する。
複合タイプ・パラメーターを含む J2EE 1.3 ボトムアップ Web サービスを作成する場合、getter のあるパラメーター・クラスのフィールドはすべて、WSDL 内で xsd:complexType の下にある子エレメントにマップされます。JAX-RPC 1.1 仕様に完全に準拠するために、J2EE 1.4 ではこの振る舞いが変更されました。それぞれの read/write プロパティー (java.beans.Introspector クラスによって指定される) が、xsd:complexType 内のエレメントにマップされます。
対象とするターゲット EJB プロジェクトがまだ存在しない状態のスケルトン EJB Web サービスを作成すると、「Web サービス」ウィザードが EJB プロジェクトと関連 EJB クライアント JAR をユーザーに代わって作成します (例: EJBProjectName と EJBProjectNameClient)。 この EJB クライアント JAR プロジェクト名は、「Web サービス」ウィザードが Web サービス・クライアントを作成する際に選択する、デフォルト Web サービス・クライアント・プロジェクト名と衝突します。このため、Web サービス・クライアント・プロジェクトにエラーが発生します。Web サービス・クライアント・プロジェクトが Web プロジェクトならば、クライアント EAR にエラーが発生し、またサンプル JSP テスト機能の生成をウィザードに要求すると、「Web サービス・ユーティリティー Jar のコピー中のエラー (Error in copying Web Service Utility Jar)」も発生します。
次善策としては、Web サービス・クライアント・プロジェクトの名前として、EJBProjectNameClient とは異なる名前を選択するか (EJB プロジェクト EJBProjectName がまだ存在しない場合)、または「Web サービス」ウィザードを開始する前に EJB プロジェクトを作成します。
IBM SOAP ランタイムを使用して WSDL ファイルからスケルトン Web サービスを作成し、同じウィザード内でプロキシーの生成を選択すると、プロキシーの生成に失敗するか、誤った生成が行われる場合があります。 次善策としては、まずスケルトン Web サービスを生成してから、得られた WSDL を使用してクライアントを別個に生成してください。