一般的なエラーメッセージ

ここでは、LiveCycle に固有のものではないエラーメッセージと、その原因になっている問題を解決する方法について説明します。

OutOfMemoryError

通常、この種類のエラーは、次のいずれかの問題が原因で発生します。

スレッドの不足

スレッドには様々な種類がありますが、大きく分ければ、Java スレッドおよびネイティブスレッドという 2 つのカテゴリに分類されます。JVM 内で実行されるスレッドは、すべて Java スレッド(Java 内部の java.lang.Thread クラス)です。ネイティブコード(C++/C)で作成されるスレッドがネイティブスレッドです。ネイティブスレッドは、オペレーティングシステムによってスケジュールおよび管理されます。これらの 2 つの種類の主な違いは次のとおりです。

  • Java スレッドは、LiveCycle コード、アプリケーションサーバーまたは JVM 自体のいずれかによって作成および管理されます。

  • オペレーティングシステムツール(perfmon または Task Manager など)で認識されるのは、ネイティブスレッドのみです。

オペレーティングシステムでは Java スレッドが認識されないので、perfmon などのオペレーティングシステムのツールを使用してスレッドを監視する場合は、ネイティブスレッドのみが監視されることになります。Java スレッドの詳細情報を取得する唯一の方法は、Java スレッドダンプを取得することです。Java スレッドダンプを取得するプロセスは、使用するアプリケーションサーバーおよび JVM に応じて異なります。製造元のマニュアルを参照してください。

また、JVM の実装は C/C++ コードで行われ、その JVM コードによって Java スレッドがネイティブスレッドにマップされます。このマッピングは、1:1(1 つの Java スレッドに対して 1 つのネイティブスレッド)か N:1(複数の Java スレッドに対して 1 つのネイティブスレッド)のいずれかになります。このマッピングの詳細な仕組みは JVM のベンダーによって異なりますが、一般的なデフォルトは 1:1 のマッピングです。このマッピングの意味は、各 Java スレッドが、対応する 1 つのネイティブスレッドを持つということです。Java スレッドの数には厳密な制限はありませんが、1:1 のマッピングが一般的であり、かつネイティブスレッドの数には制限があるので、Java スレッドも不足する可能性があります。この制限は、プロセスごと(JVM は単一のプロセス)に適用され、各オペレーティングシステムに応じて異なります。制限は、数千の範囲内(10,000 未満)になるものと想定できます。ただし、この数に関係なく、スレッドが数百の場合でも、オペレーティングシステムはそれだけ多数のスレッドをスケジュールする必要があるので、パフォーマンスの問題が発生します。

スレッドおよびメモリの割り当て

スレッドに関するもう 1 つの一般的な問題は、メモリの割り当てに関するものです。新しい Java スレッドが割り当てられると、スレッドのスタック用に一定のサイズのメモリが必要になります。このスレッドスタックの容量はパラメーター(Sun™ JVM の -Xss オプション)で指定され、デフォルトは約 512KB です。これにより、1,000 個のスレッドがある場合、そのスレッドスタックだけで 500MB のメモリが必要になります。このメモリは、JVM で実行されている他のすべてのメモリ割り当て(LiveCycle による割り当てなど)と競合し、メモリの割り当てに関する問題を引き起こします。

実際には、JVM でメモリの割り当てやスレッドの作成ができない場合、呼び出し元に対して OutOfMemory 例外が返されます。この例外には、スタックトレースおよび例外が発生した理由も同時に示されます。この情報は非常に重要で、原因を特定するための詳細な手がかりとなります。

2 つのエラーとそれらに関連付けられた理由コードを表示するメッセージの例を次に示します。

"unable to create new native thread: java.lang.OutOfMemoryError: unable to create new native thread java.lang.OutOfMemoryError: Java heap space"

これらのエラーは、次のいずれかの理由により、JVM でそれ以上スレッドを作成できなかったことを示しています。

  • プロセスごとのスレッドの制限に達した。

  • スレッドスタックを割り当てることができない。

正確な原因を特定するには、スレッドダンプ(「Java ダンプ」とも呼ばれる)を取得する必要があります。通常、スレッドダンプは javacore.xxxx.txt という名前で、アプリケーションサーバーのログディレクトリにあります。スレッドダンプ内には多くの情報が含まれていますが、リストの TID: トークン数を数えることで、スレッドの数をすばやく特定できます。一般的なエントリの例を次に示します。

"Thread-1227" (TID:0x106948F0, sys_thread_t:0x78996DA0, state:R, native ID:0x191C) prio=5 
4XESTACKTRACE at java.net.SocketInputStream.socketRead0(Native Method) 
4XESTACKTRACE at java.net.SocketInputStream.read(SocketInputStream.java(Compiled Code)) 
4XESTACKTRACE at java.io.BufferedInputStream.fill(BufferedInputStream.java(Compiled Code)) 
4XESTACKTRACE at java.io.BufferedInputStream.read1(BufferedInputStream.java(Compiled Code)) 
4XESTACKTRACE at java.io.BufferedInputStream.read(BufferedInputStream.java(Compiled Code)) 
4XESTACKTRACE at com.sun.jndi.ldap.Connection.run(Connection.java(Compiled Code)) 
4XESTACKTRACE at java.lang.Thread.run(Thread.java:567)

スレッドが数千個ある場合、スレッドが不足している可能性が高くなります。明らかな問題がある場合は、開発者がそれらのスレッドのスタックトレースを調べることで原因を特定できます。

注意: スレッドダンプの取得は一般には煩わしい作業で、アプリケーションサーバーを後で再起動する必要があります。

スレッド数が数百個の範囲内である場合は、java.lang.OutOfMemory エラーの原因はスレッドの制限ではありません。スレッドスタックのサイズ(前述の -Xss オプション)を小さくして LiveCycle を再実行し、問題が解消されるかどうかを確認してください。

OutOfMemoryError: Java heap space エラー

LiveCycle では、デフォルトのアプリケーションサーバーのトランザクションタイムアウト値より長いトランザクションが必要になる場合があります。例えば、サイズの大きい PDF ドキュメントの処理には、かなり時間がかかることがあります。Workbench ユーザーが、サイズの大きいファイルを Resources ビューにドラッグした場合に、アプリケーションサーバーログに上記のエラーが表示されることがあります。

アプリケーションサーバーログに OutOfMemoryError メッセージが表示された場合は、トランザクションタイムアウト値を増やす必要があります。推奨値は 300 秒(5 分)です。WebLogic では、タイムアウト値を WebLogic Server Administration Console による「Job Source」の設定値より大きくする必要があります。WebSphere では、タイムアウト値は最大トランザクションタイムアウトに設定した値より大きくする必要があります。

JBoss トランザクションタイムアウト値の設定

  1. テキストエディターで、[appserver root]/server/all/conf/jboss.service.xml を開きます。

  2. name 属性の値が TransactionTimeoutattribute 要素を探します。

        <attribute name="TransactionTimeout">300</attribute>
  1. attribute 要素のテキストを、必要に応じて大きな数値に変更します。

  2. jboss.service.xml を保存します。

WebLogic トランザクションタイムアウト値の設定

  1. WebLogic Server Administration Console にログインし、「Domain Structure」で、EnvironmentServers をクリックします。

  2. 右側のウィンドウで、サーバーをクリックし、「Server Start」タブをクリックします。

  3. Lock & Edit」をクリックします。

  4. 左側のウィンドウで [domain name] をクリックし、右側のウィンドウで「JTA」タブをクリックします。

  5. Timeout Seconds」ボックスに、300(またはそれ以上)を入力します。

  6. Save」をクリックし、「Activate Changes」をクリックします。

WebSphere トランザクションタイムアウト値の設定

  1. WebSphere Administrative Console のナビゲーションツリーで、ServersApplication servers/[server name] をクリックします。

  2. 「Container Settings」で、Container ServicesTransaction Service をクリックします。

  3. 「General Properties」の「Total transaction lifetime timeout」ボックスに 300(またはそれ以上)と入力します。

  4. 「General Properties」で、「Maximum transaction timeout」の値が、「Total transaction lifetime timeout」プロパティで指定した値以上になっていることを確認します。

  5. OK」をクリックします。

基本ハードウェアでの Content Services(非推奨)用 Document Management サービスの実行

注意: アドビは、Adobe® LiveCycle® Content Services ES のお客様に、コンテンツリポジトリへの移行をお願いしています。コンテンツリポジトリはモジュール化された最新の CRX アーキテクチャ上に構築されており、この CRX アーキテクチャは、アドビによる Day Software の吸収合併により利用可能になりました。コンテンツリポジトリ は LiveCycle Foundation に付属し、LiveCycle ES3 リリース以降で利用できます。

Content Services(非推奨)は、パフォーマンスを大幅に向上させる各種メモリ内キャッシュを特長としていますが、大量の Java ヒープメモリを消費します。最小ハードウェア要件だけを満たすハードウェア上で Content Services 用の Document Management サービスを実行すると、OutOfMemory 例外が発生することがあります。

JVM 引数の -Dhibernate.cache.use_second_level_cache=false-Dhibernate.cache.use_query_cache=false を設定することでメモリ使用量を制御できます。

JBoss Application Server での Content Services メモリ使用量の制御

  1. テキストエディターで次のファイルを開きます。

    • (Windows)[appserver root]¥bin¥run.batまたは [appserver root]¥bin¥run.conf.bat(JBoss インストール設定によって異なります)

    • (UNIX)[appserver root]/bin/run.sh または [appserver root]/bin/run.conf(JBoss インストール設定によって異なります)

  2. JAVA_OPTS 行で、次の引数を追加または変更します。

    • -Dhibernate.cache.use_second_level_cache=false

    • -Dhibernate.cache.use_query_cache=false

  3. 編集したファイルを保存します。

WebLogic Server での Content Services メモリ使用量の制御

  1. WebLogic Server Administration Console の「Domain Structure」で、EnvironmentServers をクリックし、右側のウィンドウで LiveCycle サーバーの名前をクリックします。

  2. Configuration」タブ/Server Start をクリックします。

  3. 「Change Center」で、「Lock & Edit」をクリックします。

  4. 「Arguments」ボックスで、以下の JVM 引数を追加または変更します。

    • -Dhibernate.cache.use_second_level_cache=false

    • -Dhibernate.cache.use_query_cache=false

  5. Save」をクリックし、「Activate Changes」をクリックします。

WebSphere Application Server での Content Services メモリ使用量の制御

  1. WebSphere Administrative Console にログインし、ナビゲーションツリーで ServersApplication servers をクリックし、右側のウィンドウでサーバー名をクリックします。

  2. 「Server Infrastructure」で、Java and Process ManagementProcess Definition をクリックします。

  3. 「Additional Properties」で「Java Virtual Machine」をクリックし、「Generic JVM arguments」ボックスで以下の JVM 引数を追加または変更します。

    • -Dhibernate.cache.use_second_level_cache=false

    • -Dhibernate.cache.use_query_cache=false

  4. Apply」をクリックして、「Save directly to the master configuration」をクリックします。

404 File not found

404 File not found エラーが表示された場合、以下について確認します。

  • ブラウザーのアクセスログで問題を確認します。

  • EAR ファイルが適切にデプロイされていること、およびアプリケーションが初期化されていることを確認します。

  • URL の対象が HTTP サーバーの場合は、そのファイルが存在することを確認します。error_log ファイルまたは error.log ファイルを参照して、Web サーバーが探している完全なファイル名を確認します。

  • (JBoss)大文字と小文字が区別されるので、URL の大文字と小文字が正しいことを確認します。

  • (JBoss)JK プラグイン設定の uriworkermap.properties ファイルで、Web アプリケーションのコンテキストルート(URL の最初の部分)が指定されていることを確認します。

  • (JBoss)JSP の場合は、EAR ファイル内にそのファイルが存在することを確認します。この場合、HTTP サーバーのエラーログファイル内にエントリが存在しないことで確認できます。

Class not found

Class not found エラーが表示される場合は、次のいずれかの問題が発生しているかどうかを確認します。

  • クラスパス設定が無効か、存在しない。

  • JAR ファイルが古い。

  • クラスにコンパイルの問題がある。

JNDI name not found

例外スタックトレースに javax.naming.NameNotFoundException: jdbc/<badName> と示される場合、使用する名前のスペルが正しいことを確認します。正しくない場合は、コードを修正する必要があります。

最も一般的な JNDI 例外の修正

  1. LiveCycle アプリケーションサーバーの JNDI ツリーに、使用する名前が表示されるかどうかを確認します。

    • 名前が表示される場合、最も考えられる原因は、コードでルックアップ用に使用している InitialContext オブジェクトが正しく設定されていないので、リソースがリストされている JNDI ツリーがルックアップの対象になっていないということです。正しい設定値については、使用しているアプリケーションサーバー版の『LiveCycle のインストールおよびデプロイ』ドキュメントを参照してください。

    • 名前が表示されない場合は、手順 2 に進みます。

  2. リソースが、JNDI ツリー内でルックアップ時にリストされていない名前の下に表示されるかどうかを確認します。

    • リソースが表示される場合は、使用しているルックアップ名が正しくありません。正しい名前を指定してください。

    • リソースが表示されない場合は、手順 3 に進みます。

  3. 起動時のアプリケーションサーバーログを確認します。アプリケーションサーバーがこのリソースを使用できるように設定されているにもかかわらず問題が発生している場合は、このログに例外が記録されます。例外が発生しているかどうかを確認します。

    • 発生している場合は、例外とスタックトレースを確認します。サーバーログの調査による別の問題として NameNotFoundException が発生している場合は、その問題に対応するトラブルシューティングの手順を参照してください。

    • 発生していない場合は、手順 4 に進みます。

  4. リソースが JNDI ツリーにリストされず、起動時に使用できない理由を示す例外も表示されない場合、問題として考えられるのは、リソースを使用できるようにアプリケーションサーバーが適切に設定されていないことです。アプリケーションサーバー設定を確認します。このリソースを使用できるように設定されているかどうか確認してください。

    • 設定されていない場合、使用しているアプリケーションサーバー版の『LiveCycle のインストールおよびデプロイ』ガイドを参照してください。

    • 設定されている場合、この問題の原因は一般的な問題ではありません。アドビエンタープライズサポートにお問い合わせください。

JBoss Application Server エラーメッセージ

org.jboss.logging.appender.FileAppender オブジェクトの問題

(既知の問題)JBoss 版の LiveCycle のインストールに ECM Connector for EMC Documentum が含まれている場合は、サーバーを再起動するたびに次のエラーメッセージがサーバーログに出力されます。

An org.jboss.logging.appender.FileAppender object is not assignable to an org.apache.log4j.Appender variable

IBM FileNet メッセージが JBoss Application Server ログファイルに出力される

IBM FileNet によって生成される不要な ERROR ログメッセージと WARNING ログメッセージが JBoss Application Server ログファイルに出力されないようにするには、[jboss_root]/server/all/conf にある log4j.xml ファイルを次のように変更します。

  1. log4j.xml ファイルを検索し、エディターで開きます。

  2. 次のテキストを [Category] セクションに追加します。

        <category name="com.filenet"> 
            <priority value="FATAL"/> 
        </category>
  1. ファイルを保存して閉じます。

  2. アプリケーションサーバーを再起動します。

WebLogic Server エラーメッセージ

WebLogic JTA タイムアウトエラー

次のエラーメッセージが表示された場合、WebLogic タイムアウトに関する問題があります。

<Warning> <com.adobe.workflow.AWS> <ap-sun4> <Server_127> <[ACTIVE] ExecuteThread: '17' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <BEA1-58E59A31956BB0D8F0AB> <> <1178316054656> <000000> <javax.ejb.TransactionRolledbackLocalException: EJB Exception: ; nested exception is: javax.ejb.TransactionRolledbackLocalException: EJB Exception: ; nested exception is: weblogic.transaction.internal.TimedOutException: Transaction timed out after 299 seconds 

この問題を解決するには、WebLogic JTA タイムアウト値を 300 秒より大きい値に設定します(『LiveCycle のインストールの準備』ドキュメントの「WebLogic トランザクションのタイムアウトの設定」を参照してください。

adobe-livecycle-weblogic.ear のデプロイエラー

次のエラーメッセージが表示された場合、WebLogic EAR のファイルデプロイメントに関する問題があります。

    Could not start application adobe-livecycle-weblogic. 
    com.adobe.livecycle.cdv.CDVException[ALC-LCM-030-113]: Failed to deploy EAR.

この問題を解決するには、WebLogic Server Administration Console を開き、この機能がロックされていない(「Lock & Edit」ボタンが選択されていない)ことを確認します。ロックされていると、Configuration Manager にはデプロイメントプロセスの完了率が 16 %と表示され、WebLogic Server Administration Console には EAR ファイルがデプロイ済みであるがインストール済みの状態になっていると表示されます。WebLogic Server Administration Console がロックされていない場合、Configuration Manager で EAR ファイルをデプロイできます。

この問題を解決するには、WebLogic Server Administration Console を開いてロックされていないことを確認してから、EAR ファイルを再度デプロイします。

PermGen space エラーによるデプロイエラー

次のエラーメッセージが表示された場合、WebLogic EAR のファイルデプロイメントに関する問題(Solaris)があります。

    java.lang.OutOfMemoryError: PermGen space

この問題を解決するには、MaxPermSize256 から 512 に拡張します。この値は、WebLogic Server Administration Console で変更できます。

Windows/WebLogic での LiveCycle モジュールのデプロイエラー

Windows 上で動作する WebLogic Server では、5 秒のサーバータイムアウト設定が短すぎるので、LiveCycle モジュールのデプロイに失敗するという既知の問題があります。この設定は、次のように手動で設定する必要があります。

  • [appserverdomain] に移動し、エディターで startWeblogic.cmd を開きます。

  • 次のパラメーターを追加します。

        -Dweblogic.client.socket.ConnectTimeout = <timeout value>

WebSphere Application Server エラーメッセージ

SECJ0305I エラーメッセージ

LiveCycle プロセスで電子メールエンドポイントを使用している場合、電子メールエンドポイントの呼び出し時に次のようなエラーが表示されることがあります。

SECJ0305I: The role-based authorization check failed for naming-authz operation NameServer:bind_java_object. The user UNAUTHENTICATED (unique ID: unauthenticated) was not granted any of the following required roles: CosNamingCreate, CosNamingDelete, CosNamingWrite.

このエラーは、WebSphere での CORBA ネーミングサービスグループで必要となる権限がない場合に発生します。

この問題を解決するには、次の手順を実行してください。

  1. WebSphere Administration Console で、Environment/Naming/CORBA Naming service groups を選択します。

  2. 次の権限を追加します。

    • Cos Naming Write

    • Cos Naming Delete

    • Cos Naming Create

  3. WebSphere Application Server を再起動します。

エラーログに org.hibernate.StaleObjectStateException のエントリが複数記録される

WebSphere のクラスターデプロイメントでは、エラーログに次のようなエントリが複数記録されることがあります。

org.hibernate.event.def.AbstractFlushingEventListener performExecutions Could not synchronize database state with session 
org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.alfresco.repo.domain.hibernate.NodeImpl#10] 
at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1769)at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2412) 
at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2312) 
at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2612)

機能的には問題ありませんが、このようなログが出力されないようにするには、WebSphere Administration Console でログレベルを変更する必要があります。ログレベルを変更するには

  1. WebSphere Administrative Console にログオンします。

  2. Troubleshooting」をクリックし、「Logs and Trace」を選択します。

  3. 右側のウィンドウで、アプリケーションサーバー名をクリックします。

  4. Change Log Detail Levels」をクリックします。

  5. 「Configuration」タブで、All Componentsorg.hibernate.event.*/org.hibernate.event.def.* を展開します。

  6. org.hibernate.event.def.AbstractFlushingEventListener」をクリックします。ポップアップメニューが表示されます。

  7. このポップアップメニューから、Message and Trace Levels/Fatal を選択します。

  8. OK」をクリックし、次に「Save directly to master configuration」をクリックします。

adobe-livecycle-websphere.ear ファイルのデプロイエラー

ここでは、adobe-livecycle-websphere.ear ファイルをデプロイしようとしたときに次のエラーメッセージが表示された場合に、エラーになったデプロイメントを修正する方法を説明します。

Could not deploy adobe-livecycle-websphere.ear. com.adobe.livecycle.cdv.CDVException[ALC-LCM-030-112]: Failed to deploy EAR. Could not deploy adobe-livecycle-websphere.ear.

WebSphere のデプロイメントエラーを修正するには:

  1. コマンドウィンドウで、limit -n コマンドを実行します。

  2. 1024 が返された場合は、wasadmin.sh スクリプトでこの値を 2048 に増やす必要があります。

  3. [appserver root]/bin/wsadmin.sh スクリプトをテキストエディターで開きます。ファイルのコメントブロックヘッダーの後に、ulimit -n 2048 行を追加します。

  4. WebSphere を再起動し、Configuration Manager を使用して adobe-livecycle-websphere.ear ファイルをデプロイします。

J2CA0294W 警告メッセージ

直接 JNDI ルックアップの推奨されない使用法に関する警告メッセージが SystemOut.log ファイルに書き込まれないようにするには、WebSphere ログレベルを変更します。

警告メッセージ「J2CA0294W」が SystemOut.log に書き込まれないようにするには、ログレベルを *=info:com.ibm.ejs.j2c.ConnectionFactoryBuilderImpl=severe に変更します。

ログレベルの変更

  1. http://[hostname]:9060/admin の URL を使用して WebSphere Administrative Console にログインし、ナビゲーションツリーで、TroubleshootingLogs and Trace をクリックします。

  2. 右側のウィンドウで、アプリケーションサーバーの名前をクリックし、「Change Log Detail Levels」をクリックします。

  3. 「Configuration」タブをクリックし、次の文字列を入力します。

        *=info:com.ibm.ejs.j2c.ConnectionFactoryBuilderImpl=severe

 「OK」をクリックし、次に「Save directly to master configuration」をクリックします。

WebSphere インストールでの詳細ログメッセージ

WebSphere のインストール時に複数の不要なログメッセージが記録されないようにするために、ログレベルを「Warning」に上げて、下位のメッセージが記録されないようにすることができます。

  1. http://[hostname]:9060/admin の URL を使用して WebSphere Administrative Console にログインします。

  2. ナビゲーションツリーで「Troubleshooting」をクリックし、「Logs and Trace」を選択します。

  3. 右側のウィンドウで、アプリケーションサーバーの名前をクリックし、「Change Log Detail Levels」をクリックします。

  4. Runtime」を選択し、org.apache.xml.security.* と入力します。

  5. Message And Trace Levels」をクリックし、「Warning」を選択します。

  6. Save runtime changes to configuration」チェックボックスをオンにします。

  7. OK」をクリックします。

例外:No trusted certificate found

WebSphere Application Server により、以下に示すような例外が表示されることがあります。

管理コンソールに表示される例外:

         Could not connect to Inbox. Error message: com.ibm.jsse2.util.h: 
            No trusted certificate found; nested exception is: 
                javax.net.ssl.SSLHandshakeException: 
        com.ibm.jsse2.util.h: No trusted certificate found

WebSphere Application Server ログファイルに表示される例外:

        [5/28/08 13:15:30:283 CDT] 00000025 SystemOut     O 
        CWPKI0022E: SSL HANDSHAKE FAILURE:  A signer with SubjectDN 
        "CN=imap.gmail.com, O=Google Inc, L=Mountain View, ST=California, C=US" 
        was sent from target host:port "null:null". The signer may need to be 
        added to local trust store "D:/servers/websphere6.1/profiles/AppSrv01 
        /config/cells/MN-TOBIKONode01Cell/nodes/MN-TOBIKONode01/trust.p12" 
        located in SSL configuration alias "NodeDefaultSSLSettings" loaded from 
        SSL configuration file "security.xml".  The extended error message from 
        the SSL handshake exception is: "No trusted certificate found". 
        [5/28/08 13:15:30:283 CDT] 00000025 SystemOut     O  
        [5/28/08 13:15:30:283 CDT] 00000025 ExceptionUtil E    
        CNTR0020E: EJB threw an unexpected (non-declared) exception during 
        invocation of method "doSupports" on bean "BeanId(adobe-core-websphere 
        #adobe-dscf.jar#EjbTransactionCMTAdapter, null)". Exception data: 
        java.lang.RuntimeException: Could not connect to Inbox. Error message: 
        com.ibm.jsse2.util.h: No trusted certificate found; 
            nested exception is: 
                javax.net.ssl.SSLHandshakeException:  
        com.ibm.jsse2.util.h: No trusted certificate found

この問題は、WebSphere のキーストアに必要な証明書が格納されていない場合に発生します。WebSphere のデフォルトのキーストアには、限られた証明書だけが格納されている点に注意してください。WebSphere のキーストアに新しい証明書を追加するには、次の手順を実行します。

WebSphere のキーストアへの新しい証明書の追加

  1. 電子メールサービスから適切な証明書を取得します。

  2. 証明書を [appserver root]/profiles/[server name]/etc にコピーします。

  3. WebSphere Administrative Console にログインし、SecuritySSL certificate and key management をクリックします。

  4. 「Related Items」で、「Key stores and certificates」をクリックし、「CellDefaultTrustStore」をクリックします。

  5. 「Additional Properties」で「Signer certificates」をクリックし、「Add」をクリックします。

  6. Alias」ボックスに、読み込む証明書の適切なエイリアスを入力します。

  7. File name」ボックスに、手順 <HyperText>2 で証明書をインストールした場所を入力し、「OK」をクリックします。

  8. Save directly to the master configuration」をクリックします。追加した証明書が、署名者の証明書として一覧に表示されます。

  9. WebSphere Application Server を再起動します。

Java の NameNotFoundException 例外

WebSphere Application Server 上で User Manager コンポーネントをブートストラップするとき、アプリケーションが起動した後で次の例外メッセージが一度だけ表示されます。

00000043 javaURLContex E   NMSV0310E: A JNDI operation on a "java:" name cannot be completed because the server runtime is not able to associate the operation's thread with any J2EE application component. This condition can occur when the JNDI client using the "java:" name is not executed on the thread of a server application request. Make sure that a J2EE application does not execute JNDI operations on "java:" names within static code blocks or in threads created by that J2EE application. Such code does not necessarily run on the thread of a server application request and therefore is not supported by JNDI operations on "java:" names. Exception stack trace: 
javax.naming.ConfigurationException [Root exception is javax.naming.NameNotFoundException: Name comp/env/ejb not found in context "java:".]

このエラーは無視してください。

DSC の呼び出し時の予期しない例外

LiveCycle がデプロイされている WebSphere の同一インスタンスで EAR としてデプロイされている別のアプリケーションが起動するトランザクション内から DSC が呼び出されると、次のエラーメッセージが表示されて DSC の呼び出しが失敗します。

LocalException E   CNTR0020E: EJB threw an unexpected (non-declared) exception during invocation of method "getObjectType" on bean

このエラーは、adobe-utilities.jar ファイルが使用され、Platform.UTIL.getTransactionManager() がトランザクションマネージャーを起動するユーザーである場合にのみ WebSphere に対して発生します。

この問題を解決するには、adobe-utilities.jar を使用してトランザクションマネージャーを起動しないようにしてください。その代わりに、次のコードを使用して UserTransaction を作成します。

InitialContext initialContext = new InitialContext(); 
UserTransaction ut = (UserTransaction)initialContext.lookup("java:comp/UserTransaction"); 
ut.begin();