WebSphere Application Server for i5/OS, Version 6.1   
             オペレーティング・システム: i5/OS

             目次と検索結果のパーソナライズ化

Web Services Invocation Framework のトラブルシューティングのヒント

Web Services Invocation Framework (WSIF) の際に直面する問題の トラブルシューティングに役立つ具体的なヒント。

WebSphere レベルの問題の解決については、問題の診断および修正を参照してください。

Web Services Invocation Framework (WSIF) 関連の問題を識別して解決するには、 標準の WebSphere Application Server のトレース およびロギング機能を使用できます。 WSIF に関連すると思われる問題が生じたら、WebSphere Application Server 管理コンソール、 およびアプリケーション・サーバーの stdout.log ファイルで、エラー・メッセージを調べることができます。アプリケーション・サーバーのデバッグ・トレースを使用可能にして、例外のダンプの詳細を入手することもできます。

WSIF ランタイムのシステム・メッセージのリストとそれぞれのメッセージの詳細な説明は、 WSIF のメッセージ解説に記載しています。

WSIF を使用している際に適用する主な既知の制約事項のリストは、 WSIF - 既知の制約事項に提供されています。

ここでは、WSIF の主要なアクティビティーのチェックリストと、 それぞれのアクティビティーに関連する共通問題へのアドバイスを記載しています。

サービスの作成

自作の WSDL では、 多数の問題が発生する可能性があります。有効な WSDL を確実に作成するには、WebSphere Development Studio for iSeries (WDS) などのツールを使用して Web サービスを 作成します。

トランスポート・メカニズムの定義
Java Message Service (JMS) では、Java Naming and Directory Interface (JNDI) が正しくセットアップされており、必要な接続ファクトリーおよびキューが作成されていることを確認してください。
SOAP の場合は、 デプロイメント記述子ファイル dds.xml が正しいことを確かめてください。 このファイルの作成は、WebSphere Development Studio for iSeries (WDS) または同様のツールを使用して行うことをお勧めします。
クライアントの作成 - Java コード

WSIF サービス、ポート、オペレーションおよびメッセージを作成する場合は、正しいフォーマットに従います。 正しいコードの例については、例: WSIF を使用して AddressBook サンプル Web サービスの動的呼び出しを有効にするを参照してください。

コードのコンパイル (クライアントおよびサービス)
コードのビルド・パスが正しく、そのパスに含まれる JAR ファイルのレベルが正しいことを確認してください。
Web サーバーへのデプロイメントの準備として、サービス用の有効な EAR ファイルを作成します。
サービスのデプロイ
サービスの EAR ファイルをインストールしてデプロイする場合には、 そのサービスのデプロイ時に出されたすべてのメッセージを慎重にチェックしてください。
サーバーのセットアップと始動

WebSphere Application Server の server.policy ファイル (/properties ディレクトリーにあります) のセキュリティー設定が正しいことを確認します。 詳しくは、WSIF のセキュリティーの使用可能化を参照してください。

WSIF のセットアップ

wsif.properties ファイルが正しくセットアップされていることを確認します。 詳しくは、wsif.properties ファイル - 初期コンテンツを参照してください。

クライアントの実行

クライアント・クラス、WSIF JAR ファイル、およびその他の必要な JAR ファイルへの参照がクラスパスに入るように正しく定義したことを確認するか、あるいは (できれば) WebSphere Application Server の launchClient ツールを使用してクライアントを実行します。

クライアント・クラス、WSIF JAR ファイル、およびその他の必要な JAR ファイルへの参照が クラスパスに入るように正しく定義されていることを確認するか、あるいは (できれば) WebSphere Application Server の クライアントの起動ツールを使用してクライアントを 実行します。このツールの詳細については、PDF 資料「アプリケーションの開発と配置」の 『アプリケーション・クライアントの実行』の章を 参照してください。

以下に、一般的に起こる問題のトラブルシューティングに役立つ一連のヒントを示します。

クライアント・コードを実行すると、「No class definition」というエラーが 表示されます。

この問題は、クラス・パスのセットアップでのエラーを示します。該当する JAR ファイルが組み込まれていることを確認してください。

「Cannot find WSDL」エラー。

次のような原因が考えられます。

以下の項目もチェックしてください。

Web サービス EAR ファイルがアプリケーション・サーバーに正しく インストールされません。

EAR ファイルの形式が不適切である可能性があります。以下のステップに従って、インストールの検証を行ってください。
  • EJB バインディングの場合は、WebSphere Application Server ツール ¥bin¥dumpnamespace を実行します。 このツールは、JNDI ディレクトリーの現在の内容をリストします。
  • HTTP を介した SOAP バインディングの場合は、http://pathToServer/WebServiceName/admin/list.jsp ページをオープンします (SOAP 管理ページがインストールされている場合)。このページには、現在インストールされている Web サービスがすべてリストされています。
  • JMS を介した SOAP バインディングの場合は、以下を調べます。
    • キュー・マネージャーが実行されていることを確認します。
    • 必要なキューが定義されていることを確認します。
    • JNDI セットアップを確認します。
    • jmsadmin ツールの「"display context"」オプションを使用して、現在の JNDI 定義をリストします。
    • Remote Procedure Call (RPC) ルーターが実行されていることを確認します。

許可問題またはセキュリティー・エラーが発生しています。

WebSphere Application Server の server.policy ファイル (/properties ディレクトリーにあります) のセキュリティー設定が正しいことを確認します。 詳しくは、WSIF のセキュリティーの使用可能化を参照してください。

複数のクライアントで WSIF を使用すると、SOAP 構文解析エラーが 発生します。

Web サービスを WebSphere Application Server にデプロイする前に 、Web サービスの有効範囲について決定する必要があります。 Web サービスのデプロイメント記述子ファイル dds.xml には、以下の行が含まれます。

    <isd:provider type="java" scope="Application" ......

Scope 属性は、Application または Session に設定できます。デフォルト設定は Application であり、この値が正しいのは、Web サービスへの各要求で、オブジェクトを単一インスタンスより長く維持する必要がない場合です。 ScopeApplication に設定されている場合、 単一インスタンスの実行中にオブジェクトを別の要求で使用することはできず、オブジェクトは完了時に解放されます。 Web サービスで、オブジェクトを複数の要求用に維持する必要があり、 要求ごとに一意にする必要がある場合は、有効範囲を Session に設定する必要があります。ScopeSession に設定されている場合、セッションの存続期間中にオブジェクトを別の要求で使用することはできず、 オブジェクトはセッションの完了時に解放されます。 有効範囲が Session ではなく、Application に設定されている場合は、次のような SOAP エラーが生じる場合があります。

SOAPException: SOAP-ENV:ClientParsing error, response was:
FWK005 parse may not be called while parsing.;
nested exception is:

[SOAPException: faultCode=SOAP-ENV:Client; msg=Parsing error, response was:

FWK005 parse may not be called while parsing.;
        targetException=org.xml.sax.SAXException:
FWK005 parse may not be called while parsing.]

異なるマシンにあるアプリケーション・サーバーで 稼働する JMS メッセージング・キューとキュー接続ファクトリーに同じ名前を使用すると、JNDI 検索エラーが発生することがあります。

異なるマシンにある アプリケーション・サーバーで稼働するメッセージング・キューとキュー接続ファクトリーに 同じ名前を使用しないでください。これは、WSIF は、常に最初に JMS 宛先をローカルに検索し、 その宛先をローカルで見つけられない場合にのみ完全 JNDI 参照を 使用するためです。例えば、Web サービスをリモート・マシンで実行し、 メッセージング・キューおよびキュー接続ファクトリーに同じ名前を使用するアプリケーション・サーバーがローカルに稼働している場合、WSIF は、リモート JNDI 宛先が WSDL サービス定義で完全に提供されている場合でもローカル・キューを検索して使用します。

WebSphere Application Server バージョン 5 上で実行する JAX-RPC クライアントは、SOAP over JMS を使用して、バージョン 5 アプリケーション・サーバーで実行する Web サービスを起動します。ターゲットの MQ Series キューでは、ユーザー ID もパスワードも 必要ありません。アプリケーション・サーバーがバージョン 6 にマイグレーションされた後で、 バージョン 6 のデフォルトのメッセージングを使用すると、基本認証が使用可能になるため、 クライアント要求は失敗します。

問題は、以下のようなログ・メッセージで表示されます。
SibMessage W [:] CWSIT0009W: A client request failed in the application server
with endpoint <endpoint_name> in bus <your_bus> with reason: CWSIT0016E: 
The user ID null failed authentication in bus <your_bus>.

問題解決の手順については、 次のサービス統合テクノロジー・トラブルシューティングのヒントを参照してください。アプリケーション・サーバーを WebSphere Application Server バージョン 6 にマイグレーションした後では、既存の Web サービス・クライアントは、マイグレーションしたサーバーにホストされたサービスへの アクセスに SOAP over JMS を使用できなくなります。

現在の WSIF のデフォルト SOAP プロバイダー (IBM Web Service SOAP プロバイダー) は、以前の (Apache SOAP) プロバイダー上で稼働するサービスとの 完全な相互運用は果たしていません。

この制約事項は、IBM Web サービス SOAP プロバイダーが、JAX-RPC 準拠の Web サービスと完全に相互運用できるように設計されているのに対し、Apache SOAP はそのようなサービスを提供できないことが原因となっています。相互運用を使用可能にするには、WSIF SOAP プロバイダー: レガシー・アプリケーションによる作業に説明されているとおりに、 ご使用の Web サービスまたは WSIF デフォルト SOAP プロバイダーを変更します。




サブトピック
WSIF (Web Services Invocation Framework) メッセージ
WSIF - 既知の制約事項
関連タスク
WSIF のセキュリティーの使用可能化
WSIF のトレースおよびロギング
WSIF のインストールおよび管理
関連資料
wsif.properties ファイル - 初期コンテンツ
参照トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 5:46:14 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.base.iseries.doc/info/iseries/ae/rwsf_trouble.html