このトピックでは、Web サービス・クライアントのトラブルシューティングについて説明します。
このトピックの各セクションでは、Web サービス・クライアントのランタイム中に経験する可能性のある問題を取り上げます。 また、それらの問題のトラブルシューティングに役立つ解決策が 提示されています。
java -jar <your_client_application>.jar, <main_class_file>.
この問題が発生するのは、Sun の JDK クラス・ロード仕様が IBM の JDK 仕様より厳密であるためです。
java -jar <java_application>.jar, <main_class_file >.
export WAS_HOME=/opt/IBM/WebSphere/AppServer ${WAS_HOME}/java/jre/bin/java -Djava.ext.dirs=${WAS_HOME}/runtimes -jar <your_client_application>.jar, <your_client_application>.args.
Class Path: /opt/IBM/WebSphere/AppServer/runtimes/ibm-jaxrpc-client.jar
HTTP を使用してプライベート IP アドレスに基づかないサービス・エンドポイント・インターフェースに 接続する際に、DNS サービスが利用できないことがあります。 したがって、DNS の解決中はパフォーマンスが低下します。
この問題は、 Web サービス・エンジンのアウトバウンド HTTP コネクターがホスト・アドレス名を解決しようとして タイムアウトになった場合に起こります。
ターゲット IP アドレスの HOSTS ファイルを変更して、DNS 解決を行わないようにすることができます。
WSWS3701E: Error: An exception was encountered. Use wsdeploy to deploy your application. This may correct the problem. The exception is <exception data>.
この例外は、6 より古いバージョンがサポートしているツールで開発された アプリケーションの実行中に問題が発生したことを示しています。 アプリケーションをアンインストールして、wsdeploy コマンドを実行後、 アプリケーションを再デプロイすることで問題は解決します。
wsdeploy コマンドは、Feature Pack for
Web Services 製品とともに使用される JAX-RPC アプリケーションによりサポートされています。Feature Pack for Web Services 製品に導入された Java API for XML-Based Web Services (JAX-WS) プログラミング・モデルは、wsdeploy コマンドをサポートしていません。JAX-WS アプリケーションでは wsdeploy コマンドを実行する必要はないので、このコマンドは実行しないでください。
文書体裁とリテラル使用による操作を定義し、 SOAP ヘッダーを使用して入力データを送信する WSDL ファイルのアプリケーション・サーバー・ランタイム中に、 WebServicesFault 例外が表示されます。
WSDL ファイルが、文書体裁とリテラル使用による操作を定義し、 この操作によって入力データを SOAP ヘッダーにマップする場合に、 Web サービス・ランタイムがターゲット・サービスについての的確な操作の検出に失敗し、 WebServicesFault 例外が表示されます。
この問題を解決するには、 その操作で、SOAP ヘッダーを使用してデータを送信する入力データがないように、 WSDL ファイルを変更します。
WebSphere Application Server 上で Web サービスをホスティングする際に、java.net.SocketTimeOutException: Read Timed Out という例外が表示される場合があります。
クライアントと Web サービス間のネットワーク接続が低速であるため、この問題が発生します。 このような場合、Web サービス・エンジンが SOAP 要求の読み取りを完了する前に、 HTTP ソケットがタイムアウトになる場合があります。この問題の原因は、ほとんどの場合、 ネットワーク全体のアクティビティーが急に増大したためです。 この問題は、クライアントが低速ネットワーク接続から Web サービスにアクセスしている場合や、 SOAP 要求のデータ量が大きい状況でも発生することがあります。
[mm/dd/yy hh:mm:ss:ttt EST] 0000006e SystemErr R WebServicesFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException faultString: java.io.IOException: Connection close: Read failed.Possible end of stream encountered. faultActor: null faultDetail:このエラーは、次の 2 つの方法のどちらかを実行して回避することができます。
例えば、クライアントが銀行用アプリケーションで、com.ibm.websphere.webservices.http.requestResendEnabled プロパティーを true に設定してある場合、トランザクションが口座に 2 回記入される場合があります。 管理コンソールの JVM カスタム・プロパティー・パネルを使用した追加の HTTP トランスポート・プロパティーの構成を参照して、com.ibm.websphere.webservices.http.requestResendEnabled プロパティーを構成します。
エラーを避けるためにこの方法を選択する利点は、IBM HTTP Server が アイドル接続またはアイドル接続に近い接続をシャットダウンしないことです。 この選択の欠点は、軽いアクティビティーの期間でも、IBM HTTP Server は利用可能な余分なスレッドを維持するために過剰なリソースを使用することです。 この方法は、AIX または Linux オペレーティング・システムでのみ選択することができます。