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

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

注: このトピックでは、 1 つ以上のアプリケーション・サーバー・ログ・ファイルを参照します。推奨される代替案として、分散システムや IBM® i システムの SystemOut.logSystemErr.logtrace.logactivity.log ファイルではなく、High Performance Extensible Logging (HPEL) ログおよびトレース・インフラストラクチャーを使用するようにサーバーを構成できます。また HPEL は、ネイティブ z/OS® ロギング機能と連携させて使用することができます。HPEL を使用する場合、LogViewer コマンド・ライン・ツールを サーバー・プロファイルの bin ディレクトリーから使用して、すべてのログ・ファイルにアクセスし、 情報をトレースできます。HPEL の使用について詳しくは、HPEL を使用してのアプリケーションの トラブルシューティングに関する情報を参照してください。

WebSphere® Application Server レベルの問題の解決について詳しくは、問題の診断 (診断ツールを使用)を参照してください。

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

WSIF ランタイムのシステム・メッセージのリストと各メッセージの詳しい説明は、WSIF (Web Services Invocation Framework) メッセージに記載されています。

WSIF 使用時に適用される主な既知の制約事項のリストは、WSIF - 既知の制約事項に記載されています。

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

サービスの作成
[AIX Solaris HP-UX Linux Windows][z/OS]

自作の Web サービス記述言語 (WSDL) ファイルでは、 さまざまな問題が発生する可能性があります。有効な WSDL ファイルを確実に作成するには、WebSphere Studio Application Developer (WSAD) などのツールを使用して Web サービスを作成します。

[IBM i]

自作の Web サービス記述言語 (WSDL) ファイルでは、 さまざまな問題が発生する可能性があります。有効な WSDL ファイルを確実に作成するには、WebSphere Development Studio for System i® (WDS) などのツールを使用して Web サービスを作成します。

トランスポート・メカニズムの定義
Java™ Message Service (JMS) では、Java Naming and Directory Interface (JNDI) が正しくセットアップされていること、および必要な接続ファクトリーとキューが作成されていることを確認してください。
[AIX Solaris HP-UX Linux Windows][z/OS]SOAP の場合は、デプロイメント記述子ファイル dds.xml が正しいことを確認してください。このファイルの作成は、WebSphere Studio Application Developer (WSAD) または同様のツールを使用して行うことをお勧めします。
[IBM i]SOAP の場合は、 デプロイメント記述子ファイル dds.xml が正しいことを確認してください。 このファイルの作成は、WebSphere Development Studio for System i (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」エラー

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

  • アプリケーション・サーバーが稼働していない。
  • WSDL におけるサーバーのロケーションとポート番号が間違っている。
  • WSDL の形式が不適切である (アプリケーション・サーバーの stdout.log ファイルにあるエラー・メッセージを調べてください)。
  • サービスのインストール後にアプリケーション・サーバーを再始動していない。

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

  • エラー・メッセージに指定されているロケーションから、WSDL を Web ブラウザーにロードできますか?
  • 対応する WSDL バインディング・ファイルを Web ブラウザーにロードできますか?

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 might not be called while parsing.;
nested exception is:

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

FWK005 parse might not be called while parsing.; 
        targetException=org.xml.sax.SAXException:
FWK005 parse might 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 サービスを起動します

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>.

問題解決のために実行するステップについては、 以下のサービス統合テクノロジーのトラブルシューティングのヒントを参照してください: バージョン 5.1 アプリケーション・サーバーの WebSphere Application Server バージョン 7.0 以降 へのマイグレーション

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

これは、IBM Web サービス SOAP プロバイダーが JAX-RPC 準拠の Web サービスと完全に相互運用できるように設計されているのに対し、Apache SOAP はそのようなサービスを提供できないことが原因です。相互協調処理を使用可能にするには、WSIF SOAP プロバイダー: 既存アプリケーションの処理で説明されているように、ご使用の Web サービスまたは WSIF のデフォルト SOAP プロバイダーのいずれかを使用します。


トピックのタイプを示すアイコン 参照トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwsf_trouble
ファイル名:rwsf_trouble.html