WebSphere Application Server - Express, Version 6.0.x   
             オペレーティング・システム: AIX , HP-UX, Linux, Solaris, Windows

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

アプリケーション・クライアントのトラブルシューティングのヒント

このトピックでは、 Java 2 Platform Enterprise Edition (J2EE) アプリケーション・クライアントの共通の問題を解決するためのデバッグに関するヒントを記載します。 このトラブルシューティング・ガイドを使用するには、 J2EE アプリケーション・クライアントの例外の 1 つのトレース項目を検討し、次にガイドの中でその例外を見つけます。

ガイドの中のエラーの一部はサンプルです。 実際に受け取るエラーは、ここに示されているものとは異なる場合があります。 また、-CCverbose=true オプションを指定して launchClient コマンドを再実行することも有効です。 このオプションは、J2EE アプリケーション・クライアント・ランタイムが初期化されるときに追加情報を提供します。

エラー: java.lang.NoClassDefFoundError

説明 この例外は、指定されたクラスを Java コードがロードできない場合にスローされます。
考えられる原因
  • 無効または存在しないクラス
  • クラスパスの問題
  • マニフェストの問題
推奨される対応 指定されたクラスがエンタープライズ・アーカイブ (EAR) ファイル内の Java アーカイブ (JAR) ファイルに存在しているかどうかを確認します。 存在する場合には、そのクラスのパスが正しいことを確認します。 例えば、次のような例外を受け取った場合、
java.lang.NoClassDefFoundError:
WebSphereSamples.HelloEJB.HelloHome
EAR ファイル内の JAR ファイルの 1 つに HelloHome クラスが存在することを確かめます。 存在する場合には、そのクラスのパスが WebSphereSamples.HelloEJB であることを確かめます。
クラスとパスが両方とも正しい場合には、例外はクラスパスの問題です。 おそらく、クライアントの JAR ファイルのマニフェストの中に指定される、 障害のあるクラスの JAR ファイルがありません。 これを検証するには、以下のステップを実行します。
  1. アセンブリー・ツールを用いて EAR ファイルを開き、「アプリケーション・クライアント」を選択します。
  2. EAR ファイル内の他の JAR ファイルの名前を Classpath フィールドに追加します。
この例外は、一般に、 Classpath フィールドに Enterprise Java Beans (EJB) モジュール名が欠如していることから起こります。

Classpath フィールドに複数の JAR ファイルを入力する場合には、 JAR 名の間をスペースで分離するようにしてください。

それでも問題が解決しない場合は、 クラスが、EAR ファイルではなく、ファイル・システムからロードされた可能性があります。 問題のクラスが例外に指定されているクラスではないため、 このエラーをデバッグすることは困難です。 あるいは、例外に指定されているクラスより前に、別のクラスがファイル・システムからロードされました。 このエラーを訂正するには、-CCclasspath オプションで指定されたクラスパ ス、およびアプリケーション・クライアント・リソース構成ツールで構成されたクラスパスを調べます。

EAR ファイルにも存在するクラスを探します。 .ear ファイルでなく、ファイル・システム上でクラスの 1 つが検出された状況を解決する必要があります。 クラスパスから項目を除去するか、 あるいは .jar ファイルおよびクラスを、ファイル・システムから参照するのではなく、.ear ファイルに組み込みます。

ツールで -CCclasspath パラメーターまたは リソース・クラスパスを使用し、複数の JAR ファイルまたはクラスを構成し ている場合には、ご使用のオペレーティング・システム用の正しい区切り文字 が使用されていることを確かめてください。 Classpath フィールドとは違って、これらのクラスパス・フィールドはプラ ットフォーム固有の区切り文字を使用します。

[AIX] [HP-UX] [Linux] [Solaris] 区切 り文字は、コロンです。

[Windows] 区切り文字は、セミコロンです。

ヒント: launchClient バッチ・ファイルまたはシェル・ファイルを使用する場合、 システム・クラスパスは、アプリケーション・クライアント・ランタイムによって使用されません。 この場合には、システム・クラスパスはこの問題を起こしません。 しかし、launchClient クラスを直接ロードする場合には、 システム・クラスパスも探す必要があります。

エラー: com.ibm.websphere.naming.CannotInstantiateObjectException: Exception occurred while attempting to get an instance of the object for the specified reference object.[Root exception is javax.naming.NameNotFoundException: xxxxxxxxxx]

説明 ホスト・サーバー上にインストールされていないオブジェクトの検索を実行すると、この例外が発生します。 ユーザーのプログラムはローカル・クライアント Java Naming and Directory Interface (JNDI) のネーム・スペースでその名前をルックアップすることができますが、 それはホスト・サーバーにはないので NameNotFoundException 例外を受け取りました。 1 つの代表的な例は、 アクセスするホスト・サーバーにインストールされていない EJB コンポーネントを検索するというものです。 この例外は、アプリケーション・クライアント・モジュールに構成した JNDI 名が、 ホスト・サーバー上のリソースの実際の JNDI 名と一致しない場合にも起こります。
考えられる原因
  • 間違ったホスト・サーバーが起動された
  • リソースが定義されていない
  • リソースがインストールされていない
  • アプリケーション・サーバーが開始されていない
  • 無効な JNDI 構成
推奨される対応 間違ったホスト・サーバーにアクセスしている場合は、 正しいホスト・サーバー名を指定する -CCBootstrapHost パラメーターを用いて、 launchClient コマンドを再度実行します。 正しいホスト・サーバーにアクセスしている場合には、 製品の dumpnamespace コマンド行ツールを使用して、 ホスト・サーバーの JNDI ネーム・スペースのリストを参照します。 障害を起こしたオブジェクトの名前が見つからない場合には、 リソースがホスト・サーバーにインストールされていないか、 あるいは適切なアプリケーション・サーバーが開始されていないかのどちらかです。 リソースがすでにインストールされており開始されていることが判明した場合には、 クライアント・アプリケーション内の JNDI 名がホスト・サーバー上のグローバル JNDI 名と一致しません。 Application Server Toolkit を使用して、 クライアント・アプリケーション内の障害を起こしたオブジェクト名の JNDI バインディング値を ホスト・サーバー・アプリケーション内のオブジェクトの JNDI バインディング値と比較します。 これらの値は一致しなければなりません。

エラー: javax.naming.ServiceUnavailableException: A communication failure occurred while attempting to obtain an initial context using the provider url: "iiop://[invalidhostname]". Make sure that the host and port information is correct and that the server identified by the provider URL is a running name server. If no port number is specified, the default port number 2809 is used. Other possible causes include the network environment or workstation network configuration. Root exception is org.omg.CORBA.INTERNAL: JORB0050E: In Profile.getIPAddress(), InetAddress.getByName[invalidhostname] threw an UnknownHostException. minor code: 4942F5B6 completed: Maybe

説明 この例外は、無効なホスト・サーバー名を指定すると発生します。
考えられる原因
  • 間違ったホスト・サーバーが起動された
  • 無効なホスト・サーバー名
推奨される対応 launchClient コマンドを再度実行し、-CCBootstrapHost パラメーターを用いて、 ホスト・サーバーの正しい名前を指定します。

エラー: javax.naming.CommunicationException: Could not obtain an initial context due to a communication failure. Since no provider URL was specified, either the bootrap host and port of an existing ORB was used, or a new ORB instance was created and initialized with the default bootstrap host of "localhost" and the default bootstrap port of 2809. Make sure the ORB bootstrap host and port resolve to a running name server. Root exception is org.omg.CORBA.COMM_FAILURE: WRITE_ERROR_SEND_1 minor code: 49421050 completed: No

説明 この例外は、 始動済みアプリケーション・サーバーを持たないホスト・サーバーに対して launchClient コマンドを実行すると発生します。 この例外は、無効なホスト・サーバー名を指定した場合にも起こります。 これは、launchClient ツールを実行するときにホスト・サーバー名を指定しないと起こることがあります。 WebSphere Application Server はユーザーのホスト・サーバーの名前を知らないので、 デフォルトの振る舞いでは、launchClient ツールがローカル・ホストを対象として実行することになります。 このデフォルトの振る舞いは、 WebSphere Application Server がインストールされているマシン上でクライアントを実行させている場合にのみ動作します。
考えられる原因
  • 間違ったホスト・サーバーが起動された
  • 無効なホスト・サーバー名
  • localhost への無効な参照
  • アプリケーション・サーバーが開始されていない
  • 無効なブートストラップ・ポート
推奨される対応 正しいホスト・サーバーに対して実行していない場合は、launchClient コマンドを再度実行し、 -CCBootstrapHost パラメーターを使ってホスト・サーバーの名前を指定します。 そうでなければ、ホスト・サーバー上の Application Server を開始して、 launchClient コマンドを再実行します。

エラー: javax.naming.CommunicationException: Could not get the users matching the pattern wasuser6 because of the following exception javax.naming.CommunicationException: simple bind failed: server_location. Root exception is javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake. [Windows]

説明 この例外は、LDAP (Windows 2000 Active Directory) ユーザー ・レジストリーを使用して、管理、アプリケーション、および Java 2 セキ ュリティーを使用可能にすると発生します。
考えられる原因
  • スタンドアロン LDAP レジストリー構成パネルで「SSL 使用可能 」 オプションにチェック・マークが付けられています。
  • LDAP ポート番号またはホスト名が間違っています。LDAP サーバーで、LDAP サーバー証明書 が間違っているか、期限が切れています。
  • 認証局 (CA) が WebSphere Application Server にインポートされて いないか、間違っています。
  • Secure Sockets Layer (SSL) 構成が間違っています。
  • ネットワークに問題があります。
推奨される対応 SSL 使用可能 」オプションのチェック・マークを 外し、接続を再試行します。 「SSL 使用可能 」オプションは、WebSphere Application Server プラグインとアプリケーション・サーバー間の接続を SSL を使用して保護するか どうかを指定します。 デフォルトでは SSL を使用しません。

エラー: javax.naming.NameNotFoundException: Name comp/env/ejb not found in context "java:"

説明 この例外は、指定された名前を Java コードがローカル JNDI ネーム・スペース内で見つけられない場合にスローされます。
考えられる原因
  • 指定された名前にバインディング情報がない
  • 指定された名前のバインディング情報が間違っている
  • プログラムのクラスの 1 つをロードするのに、間違ったクラス・ローダーが使用された
  • リソース参照に、クライアント構成情報が含まれていない
推奨される対応

Application Server Toolkit を用いて EAR ファイルを開き、 障害の原因となっている名前に対するバインディングを検査します。 この情報が正しいことを確かめます。 リソース参照を使用している場合には、 アプリケーション・クライアント・リソース構成ツールを用いて EAR ファイルをオープンし、 リソース参照にクライアント構成情報があること、 およびリソース参照の名前とクライアント構成の JNDI 名が完全に一致することを確認してください。 この値が正しい場合には、クラス・ローダー・エラーがあることが考えられます。

エラー: java.lang.ClassCastException: Unable to load class: org.omg.stub.WebSphereSamples.HelloEJB._HelloHome_Stub at com.ibm.rmi.javax.rmi.PortableRemoteObject.narrow(portableRemoteObject.java:269)

説明 この例外は、 アプリケーション・プログラムが EJB のホーム・クラスに対して絞り込みを試み、 クラス・ローダーが EJB のクライアント・サイド・バインディングを検出できない場合に発生します。
考えられる原因
  • *_Stub.class ファイルおよび _Tie.class ファイルが EJB .jar ファイル内にない
  • クラス・ローダーがクラスを検出できなかった
推奨される対応 .ear ファイル内に配置されている EJB .jar ファイルを調べて、 クラスが Enterprise Java Beans (EJB) クライアント・サイド・バインディングを含んでいるかどうか検査します。 これらのファイルは、 名前が _Stub および _Tie で終わるクラス・ファイルです。 バインディング・クラスが EJB .jar ファイルにある場合には、 クラス・ローダー・エラーが生じることがあります。

エラー: WSCL0210E: Enterprise アーカイブ・ファイル [EAR file name] が見付かりません。com.ibm.websphere.client.applicationclient.ClientContainerException: com.ibm.etools.archive.exception.OpenFailureException

説明 このエラーは、 アプリケーション・クライアント・ランタイムがエンタープライズ・アーカイブ (EAR) ファイルを読み取れないときに起こります。
考えられる原因 このエラーの原因として最も可能性が高いのは、 launchClient コマンドで指定されたパスに EAR ファイルが見つからないことです。
推奨される対応 launchclient コマンドで指定したパスとファイル名が正しいことを確認してください。

[Windows] Windows オペレーティング・システムで実行しており、パスとファイル名が正しい場合には、パスとファイル名を短くしてみてください (8 文字のファイル名および 3 文字の拡張子)。

launchClient コマンドが停止している可能性があり、 クライアント・アプリケーションが終了してもコマンド行に戻らない。

説明 launchClient コマンドを使用してアプリケーション・クライアントを実行していると、 WebSphere Application Server ランタイムが、セキュリティー・ログイン・ダイアログの表示を必要とする場合があります。 このダイアログを表示するために、 WebSphere Application Server ランタイムは Abstract Window Toolkit (AWT) スレッドを作成します。 アプリケーションが、その main メソッドからアプリケーション・クライアント・ランタイムに戻されるときに、 アプリケーション・クライアント・ランタイムは、オペレーティング・システムへのリターンを試み、 Java 仮想マシンを終了します。 しかし、AWT スレッドがあるので、 JVM コードは、System.exit が呼び出されるまでは終了しません。
考えられる原因 AWT スレッドがあるために、JVM コードが終了しません。 Java コードには、AWT スレッドを終了するために呼び出される System.exit() が必要です。
推奨される対応
  • System.exit(0) を最後のステートメントとして呼び出すようにアプリケーションを変更する。
  • launchClient コマンドを呼び出す際に、-CCexitVM=true パラメーターを使用する。

アプレット・クライアント・アプリケーションが Internet Explorer で HTML ブラウザーを起動できない [Windows]

説明 アプレット・クライアント・アプリケーションは、Windows システムでのみ実行されます。 アプレット・クライアント・アプリケーションが実行されると、 ブラウザーのウィンドウにアプリケーション出力データが表示されます。

Internet Explorer と Windows XP オペレーティング・システム Service Pack 2 を使用している場合は、 出力データを表示しようとしてエラーになることがあります。

考えられる原因  
推奨される対応 Windows XP オペレーティング・システム Service Pack 2 の場合は、次のアクションを実行します。
  • ブロックされた Internet Explorer ポップアップ・ブラウザーの URL アドレス・バーの下にある情報バーを探します。
  • 情報バーをクリックして、オペレーティング・システムのセキュリティー機能を 使用不可にするオプションを表示します。
  • ブロックされているコンテンツを許可」を選択します。
  • セキュリティー・ウィンドウが開き、ブロックされたコンテンツを許可するという選択を確認するプロンプトが出たら「はい」をクリックします。

    アプレット・クライアント・アプリケーションが正常に実行され、 ブラウザー情報が適切に表示されます。

WebSphere トレーダー・アプレット・クライアントは、Linux 上の Sun JVM プラグイン・バージョン 1.4.1_02 では正常に機能しない

説明 WebSphere Application Server トレーダー・アプレット・クライアントは、Red Hat Enterprise Linux®、Red Flag Linux Adv Server および SuSE Linux プラットフォーム上の Sun Java™ Virtual Machine (JVM™) プラグイン・バージョン 1.4.1_02 では正常に機能しません。
考えられる原因 WebSphere Application Server トレーダー・アプレット・クライアントは、Red Hat Enterprise Linux、Red Flag Linux Adv Server および SuSE Linux プラットフォーム上の Sun JVM plug-in version 1.4.1_02 には対応していません。
推奨される対応 前述のプラットフォームのいずれかで WebSphere Application Server を稼働する場合は、Windows 2003 などのサポートされている別のプラットフォームのブラウザーを使用してサンプルを実行します。

管理対象外クライアントを実行するときに "NoClassDefFoundError: Invalid Implementation Key" が発生する

説明 管理対象外クライアントを呼び出すときに、"NoClassDefFoundError: Invalid Implementation Key" 例外が WebSphere Application Server のクラスで表示されることがあります。以下の例を参照してください。
Exception in thread "main" java.lang.NoClassDefFoundError: Invalid Implementation Key, com.ibm.ws.util.PlatformHelper
at com.ibm.ws.util.ImplFactory.loadClassFromKey(ImplFactory.java:230)
at com.ibm.ws.util.ImplFactory.loadImplFromKey(ImplFactory.java:179)
at com.ibm.ws.util.ImplFactory.loadImplFromKey(ImplFactory.java:185)
at com.ibm.ws.util.PlatformHelperFactory.getPlatformHelper(PlatformHelperFactory.java:51)
... 
考えられる原因 この問題は、WebSphere Application Server JAR ファイルのマニフェストからクラス・パス・エントリーが除去されている ことが原因であると推測されます。前のバージョンと比較すると変更されているこの動作は、意図的なものです。 WebSphere Application Server の実装の詳細に、依存関係を作成することはお勧めできません。
推奨される対応

推奨されるソリューションは、Java システム・プロパティーを使用して WebSphere ライブラリー・ディレクトリーを JDK 拡張クラス・ローダー・ク ラスパスに追加することです。これは、次のように行います。「-Djava.ext.dirs=$JAVA_HOME/jre/lib/ext;$WAS_EXT_DIRS」ここで 、$WAS_EXT_DIRSsetupCmdLine.bat または setupCmdLine.sh に定義されているか、少なくとも $WAS_HOME/lib を含む必要があります。 詳しくは、次のトピック、サーバー・マシンでのシン・アプリケーション・クライアント・コードの開発を参照してください。

WebSphere Application Server ライブラリー JAR ファイルをロードするために独自のカスタマイズ済みクラス・ローダー が必要な場合は、より優先度の低いアプローチが使用できます。 この優先度の低いメソッドには、カスタム・クラス・ローダーを作成した後 で直ちにカスタマイズ済みクラス・ローダーに設定するスレッド・コンテキス ト・クラス・ローダーが必要です。
Thread.currentThread().setContextClassLoader(...);
このアプ ローチはさらにお勧めできません。クラスの依存関係および階層の代行モー ドに起因する潜在的な危険により、管理対象外クライアント環境での独自のカ スタマイズ済みクラス・ローダーの使用について注意する必要があるからです 。 この潜在的な障害の結果である共通問題の例は、classNotFoundException です。

Developer Kit フィーチャーをインストールすると、JRE ファイルがバージョン 6.0.1 またはバージョン 6.0.2 からバージョン 6.0 にダウングレードされます。 [バージョン 6.0.2]

説明 Application Client バージョン 6.0.0 インストーラーで Developer Kit フィーチャーを選択した場合は、すべてのファイルが Java Runtime Environment (JRE) ファイルをそのままにしておく代わりに、<client_install_root>/java ディレクトリー下にインストールされます。 JRE ファイルは予期せずバージョン 6.0.0 レベルにダウングレードされます。
考えられる原因 Application Client 6.0.0 インストーラーで Developer Kit フィーチャーを選択すると、JRE ファイルがそのまま残るのではなく、実際に <client_install_root>/java ディレクトリーの下にすべてのファイルがインストールされます。 したがって、上記のインストール・シナリオでは JRE ファイルが予期せず 6.0.0 レベルにダウングレードされます。
推奨される対応 次のインストール・ステップを実行して、予期しない JRE ファイルのダウングレードを防ぎます。
IBM からのトラブルシューティングのヘルプ の説明のとおり、IBM サポートが提供する資料およびツールを利用することによって、問題の解決に必要な情報収集の時間が節約できます。 問題報告書を開く前に、以下のサポート・ページを参照してください。



関連タスク
アプリケーション・クライアントの実行
アプリケーション・クライアントの使用
参照トピック    

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

最終更新: Jan 21, 2008 11:31:28 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/rcli_troubleshoot.html