ヘッダーをスキップ
Oracle TopLink開発者ガイド
10g(10.1.3.1.0)
B31861-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

15 アプリケーション・デプロイのトラブルシューティング

この章では、エンティティBeanの構成とデプロイに関する一般的なトラブルシューティングの問題について説明します。TopLinkを使用して永続化エンティティBeanのデプロイを行おうとするときに発生する、一般的な例外と例外のメッセージの多くを取り上げます。

TopLink Workbenchを使用してTopLinkをインストールする際に問題が発生した場合や、TopLinkで生成される実行時例外の詳細情報が必要な場合は、該当するドキュメントを参照してください。

この章の内容は次のとおりです。

デプロイJARファイルの生成

デプロイ用のJARファイルの生成中に問題が発生した場合は、次のようにします。

EJBコンパイラ・ユーティリティの実行には、コンパイル、コード生成、EJB適合性検証、rmicの実行によるRMIスタブのコンパイルなど、いくつかのプロセスが関係します。EJBコンパイラ・ユーティリティの実行中にエラーが発生した場合、どの段階が失敗の原因になったかを特定するよう努めてください。

EJBコンパイラ・ユーティリティの詳細は、サーバーのドキュメントを参照してください。

一般的なJ2SEデプロイ例外

次に示すのは、TopLinkを使用する(J2EEではなく)J2SEアプリケーションのデプロイ時に発生する可能性のある、最も一般的なエラーの一部です。

クラスパス例外

例外は、接続プールの設定中に発生することがあります。ネストしたSQL例外をチェックして、例外の原因を特定する必要があります。一般的な理由は次のとおりです。

  • JDBCドライバの場所がクラスパスで指定されていない。

  • ユーザーの設定したユーザー名またはパスワードが正しくない。

  • サーバーのURLまたはドライバ名が正しく指定されていない。

この例外に関するヘルプ情報は、アプリケーション・サーバー・ドキュメントおよびJDBCドライバ・ドキュメントを参照してください。

必要なTopLink JARファイルがアプリケーション拡張機能のクラスパスにコピーされていない場合は、クラスパス例外が発生します。toplink.jarおよびantlr.jarファイルが<Application Server install>\lib\appディレクトリにコピーされていることを確認する必要があります。

TopLinkで、デプロイproject.xmlファイルまたはsessions.xmlファイルの検索に問題が生じた場合は、クラスパス例外が発生します。第10章「TopLinkアプリケーションのデプロイ」を参照してください。

JDeveloperではsessions.xmlファイルをMETA-INFディレクトリに配置します。J2EE以外のアプリケーションにsessions.xmlファイルをロードするには、例15-1に示すように、sessions.xmlファイルの場所を明示的に示す必要があります。

例15-1 sessions.xmlファイルの場所

XMLSessionConfigLoader loader = new
           XMLSessionConfigLoader("META-INF/sessions.xml");
session = (DatabaseSession)SessionManager.getManager().getSession(
           loader, "MySession", Thread.currentThread().getContextClassLoader());

J2SEアプリケーションがシングル・ユーザー・アプリケーションの場合は、ServerSessionではなくDatabaseSessionを使用できます。これにより、パフォーマンスが向上し、データベース接続数およびログイン時間を削減できます。

通信例外

キャッシュ・コーディネーションを使用する状況では、通信例外が発生することがあります。通信例外は、発生したRMI例外、CORBA例外または入出力例外をすべてラップする実行時例外です。

発生する可能性のある通信例外の詳細は、「TopLink例外参照」の章の「通信例外(12000〜12003)」の項を参照してください。

ディスクリプタの検証例外

ディスクリプタ例外は、ディスクリプタに指定した情報が不十分な場合に発生する開発例外です。返されるメッセージには、例外の原因となったディスクリプタまたはマッピングの名前が含まれています。ディスクリプタ内のマッピングがエラーの原因である場合、マッピングの名前とパラメータがメッセージの一部として返されます。

内部例外、マッピングおよびディスクリプタが表示されるのは、TopLinkに問題の原因についての十分な情報があり、この情報を提供できる場合のみです。

発生する可能性のあるディスクリプタの検証例外の詳細は、「TopLink例外参照」の章の「ディスクリプタ例外(1〜201)」の項を参照してください。

BEA WebLogic Serverの一般的なデプロイ例外

次に示すのは、BEA WebLogic ServerへのエンティティBeanのデプロイ時に発生する、最も一般的な例外の一部です。

バージョンごとの詳細は、次の項を参照してください。

アサーション・エラー
原因: この例外は、toplink.jarファイルがクラスパスに正しく設定されていない場合に発生します。次の例外メッセージが返されます。

weblogic.utils.AssertionError: ***** ASSERTION FAILED *****[Could not load class 'oracle.toplink.internal.ejb.cmp.wls.WlsCMPDeployer': java.lang.ClassNotFoundException: oracle.toplink.internal.ejb.cmp.wls.WlsCMPDeployerERROR: ejbc found errors

処置: <ORACLE_HOME>/toplink/jlib/toplink.jarファイルがシステムのクラスパスに指定されていることを確認します。
アプリケーション・デプロイ時のエラー
原因: DeploymentExceptionが発生しました。
処置: 個々のエラー・コードを参照してください。エラー・コードは、[TopLink-8001]のように大カッコで囲まれて例外メッセージの中に表示されます。このようなエラーは、プロパティ・ファイルにおけるプロジェクトの場所の読取りの指定に関するエラーや、不適切なマッピングによる検証エラーを示しています。
例外8001
原因: このエラーは、TopLinkプロジェクト・ファイルがtoplink-ejb-jar.xmlファイルに指定されていない場合に発生します。次の例外メッセージが返されます。

<Error> <J2EE> <Error deploying application Account:Unable to deploy EJB: AccountBean from Account.jar:LOCAL EXCEPTION STACK:EXCEPTION [TOPLINK-8001] (TopLink (WLS CMP) - X.X.X): oracle.toplink.ejb.DeploymentExceptionEXCEPTION DESCRIPTION: No TopLink project was specified for this bean. atoracle.toplink.ejb.DeploymentException.noPro jectSpecified(DeploymentException.java:132) at oracle.toplink.internal.ejb.cmp.ProjectDeployment.readProject(ProjectDeployment.java:378)

処置: toplink-ejb-jar.xmlファイルにproject-xmlまたはproject-classのエントリがあることを確認します。
例外8016
原因: この例外は、Beanに対するTopLinkプロジェクト・ファイルの場所が正しく指定されていない場合に発生します。次の例外メッセージが返されます。

<Error> <J2EE> <Error deploying application Account:Unable to deploy EJB: AccountBean from Account.jar:LOCAL EXCEPTION STACK:EXCEPTION [TOPLINK-8016] (TopLink (WLS CMP) - X.X.X): oracle.toplink.ejb.DeploymentExceptionEXCEPTION DESCRIPTION: An error occurred while setting up the project: [java.io.FileNotFoundException: Account.xml]INTERNAL EXCEPTION: java.io.FileNotFoundException: Account.xmlatoracle.toplink.ejb.DeploymentException.errorCreatingProject(Unknown Source)

処置: toplink-ejb-jar.xmlファイルに指定されているファイル名と、ファイル・システム上のプロジェクト・ファイルの場所をチェックします。
接続プールを起動できない
原因: 接続プールの設定中に例外が発生しました。次の例外メッセージが返されます。

<Error> <JDBC> <Cannot startup connection pool "ejbPool" weblogic.common.ResourceException: Cannot load driver class: org.hsqldb.jdbcDriver>...

処置: ネストしたSQL例外をチェックして、例外の原因を特定します。一般的な理由は次のとおりです。
  • JDBCドライバがクラスパスにない。

  • ユーザーの設定したユーザー名またはパスワードが正しくない。

  • サーバーのURLまたはドライバ名が正しく指定されていない。

BEA WebLogicで発生した例外に関するヘルプ情報は、BEA WebLogic ServerのドキュメントとJDBCドライバのドキュメントを参照してください。

エラー・メッセージ
原因: この問題は、GAバージョンのBEA WebLogic Server 6.0を使用している場合に発生します。次の例外メッセージが返されます。

weblogic.utils.AssertionError: ***** ASSERTION FAILED *****[Could not create an instance of class 'null': java.lang.NullPointerException at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:120) at weblogic.ejb20.persistence.PersistenceType. loadClass (PersistenceType.java:309)

処置: WebLogic Server 6.0(Service Pack 1)以上にアップグレードします。
EJBC検出エラー
原因: このエラーは、toplink.jarファイルがクラスパスに正しく設定されていない場合に発生します。次の例外メッセージが返されます。

ERROR: ejbc found errors Error from ejbc: Error while loading persistence resource TopLink_CMP_Descriptor.xml Make sure that the persistence type is in your classpath.

処置: <ORACLE_HOME>/toplink/jlib/toplink.jarファイルがシステムのクラスパスに指定されていることを確認します。
EJBデプロイ例外
原因: この例外は、Beanに対するTopLinkプロジェクト・ファイルの場所が正しく指定されていない場合に発生します。次の例外メッセージが返されます。

weblogic.ejb20.EJBDeploymentException: Error Deploying CMP EJB:; nested exception is: weblogic.ejb20.cmp.rdbms.RDBMSException: An error occurred setting up the project: EXCEPTION [TOPLINK-13000] (vX.X [TopLink for WebLogic X.X] JDK1.2): oracle.toplink.xml.XMLDataStoreException EXCEPTION DESCRIPTION: File not found...

処置: toplink-ejb-jar.xmlファイルに指定されているファイル名と、ファイル・システム上のTopLinkプロジェクト・ファイルの場所をチェックします。
EJBコンポーネントのデプロイ
原因: この例外の一般的な原因は、toplink-ejb-jar.xmlファイルが誤ったファイル名または場所を使用してローカルDTDファイルを参照していることです。次の例外メッセージが返されます。

Error deploying EJB Component:... weblogic.ejb20.EJBDeploymentException: Exception in EJB Deployment; nested exception is: Error while deploying bean..., File...Not Found at weblogic.ejb20.persistence.PersistenceType.setup Deployer(PersistenceType.java:273)

処置: すべてのXMLファイルが有効なDTDファイルおよび場所を参照していることを確認します。
接続プールejbPoolを起動できない
原因: この例外は、接続プールの設定中にエラーが生じたことを示すために発生します。次の例外メッセージが返されます。

Cannot startup connection pool "ejbPool" weblogic.common.ResourceException: Could not create pool connection.The DBMS driver exception was:...

処置: ネストしたSQL例外をチェックして、エラーの原因を特定します。よくある問題を次に示します。
  • ドライバがクラスパスにない。

  • ユーザー名またはパスワードが正しくない。

  • サーバーのURLまたはドライバ名が正しく指定されていない。

BEA WebLogicで発生した例外に関するヘルプ情報は、BEA WebLogic ServerのドキュメントとJDBCドライバのドキュメントを参照してください。

その他の例外

まれに、サーバーの構成ファイル(config.xml)に加えた変更が、サーバーを再起動しても適用されていないように思われることがあります。この場合、BEA WebLogic Serverで作成された一時ディレクトリを削除します。一時ディレクトリは、wlserver6.1ディレクトリの下のconfigディレクトリと同じレベルにあります。

BEA WebLogic Server 6.1の一般的な例外

次に示すのは、TopLinkとBEA WebLogic Server 6.1を使用してJARファイルをデプロイする際に発生する、最も一般的な例外の一部です。

開発例外

永続性タイプがない
原因: TopLink CMPのpersistence.installファイルにエントリがありません。これは、TopLinkのインストールが中断された場合や、BEA WebLogic Server Service Packが適用された場合に発生することがあります。次の例外メッセージが返されます。

ERROR: Error from ejbc: Persistence type 'TopLink_CMP_2_0' with version 'X.X which is referenced in bean 'Account' is not installed.The installed persistence types are: (WebLogic_CMP_RDBMS, 6.0), (WebLogic_CMP_RDBMS, 5.1.0).ERROR: ejbc found errors

処置: <WebLogic InstallDir>/wlserver6.1/lib/persistenceディレクトリで、persistence.installファイルを編集して新しい行TopLink_CMP_Descriptor.xmlを追加するか、既存のpersistence.installファイルを<ORACLE_HOME>/toplink/configディレクトリにあるファイルのバージョンに置き換えます。
永続性リソースのロード・エラー
原因: toplink.jarファイルがクラスパスに正しく設定されていません。次の例外メッセージが返されます。

Error while loading persistence resource TopLink_CMP_Descriptor.xml Make sure that the persistence type is in your classpath.

処置: クラスパスに<ORACLE_HOME>/toplink/jlib/toplink.jarファイルが含まれていることを確認します。
BEA WebLogicの誤ったバージョン
原因: BEA WebLogic Server 6.0を使用してコードをコンパイルしようとしています。次の例外メッセージが返されます。

C:\<ORACLE_HOME>\toplink\examples\weblogic\wls61\ examples\ejb\cmp20\singlebean\Account.java:10: cannot resolve symbolsymbol  : class EJBLocalObjectlocation: interface examples.ejb.cmp20.singlebean.Accountpublic interface Account extends EJBLocalObject {

処置: BEA WebLogic Server 6.1を使用してコンパイルします。

デプロイおよび実行時例外

永続性タイプがない
原因: TopLink CMPのpersistence.installファイルにエントリがありません。これは、TopLinkのインストールが中断された場合や、BEA WebLogic Server Service Packが適用された場合に発生することがあります。次の例外メッセージが返されます。

Persistence type 'TopLink_CMP_2_0' with version 'X.X which is referenced in bean 'Account' is not installed.The installed persistence types are: (WebLogic_CMP_RDBMS, 6.0), (WebLogic_CMP_RDBMS, 5.1.0).

処置: <WebLogic InstallDir>/wlserver6.1/lib/persistenceディレクトリで、persistence.installファイルを編集して、新しい行TopLink_CMP_Descriptor.xmlを追加します。既存のpersistence.installファイルを<ORACLE_HOME>/toplink/configディレクトリにあるファイルのバージョンに置き換えることもできます。
永続性リソースのロード・エラー
原因: toplink.jarファイルがクラスパスに正しく設定されていません。次の例外メッセージが返されます。

<DATE and TIME> <Error> <J2EE> <Error deploying application ejb20_cmp_order:Unable to deploy EJB: C:\<ORACLE_HOME>\toplink\examples\weblogic\wls61\server\config\TopLink_Domain\applications\wlnotdelete\wlap64280\ejb20_cmp_order.jar from ejb20_cmp_order.jar:Error while loading persistence resource TopLink_CMP_Descriptor.xml Make sure that the persistence type is in your classpath.atweblogic.ejb20.persistence.InstalledPersistence.initialize(InstalledPersistence.java:214)atweblogic.ejb20.persistence.InstalledPersistence.getInstalledType(InstalledPersistence.java:113)

処置: クラスパスに<ORACLE_HOME>/toplink/jlib/toplink.jarファイルが含まれていることを確認します。
永続性の誤ったバージョン
原因: BEA WebLogic Server 7.0用のpersistence-versionを使用している可能性があります。次の例外メッセージが返されます。

DATE and TIME> <Error> <J2EE> <Error deploying application ejb20_cmp_account:Unable to deploy EJB: Account from ejb20_cmp_account.jar:java.lang.AbstractMethodErroratweblogic.ejb20.deployer.ClientDrivenBeanInfoImpl.deploy(ClientDrivenBeanInfoImpl.java:807)atweblogic.ejb20.deployer.Deployer.deployDescriptor(Deployer.java:1234)atweblogic.ejb20.deployer.Deployer.deploy(Deployer.java:947)atweblogic.j2ee.EJBComponent.deploy(EJBComponent.java:30)

処置: 4.0のpersistence-versionを使用します。
データ・ソースを起動できない
原因: データ・ソースの設定中に例外が発生しました。次の例外メッセージが返されます。

EXCEPTION [TOPLINK-7060] (TopLink (WLS CMP)-X.X):oracle.toplink.exceptions.ValidationExceptionEXCEPTION DESCRIPTION: Cannot acquire datasource [jdbc/ejbNonJTSDataSource].INTERNAL EXCEPTION: javax.naming.NameNotFoundException: Unable to resolve jdbc.ejbNonJTSDataSource Resolved: '' Unresolved:'jdbc' ; remaining name 'ejbNonJTSDataSource'

処置: ネストしたSQL例外をチェックして、例外の原因を特定します。詳細は、「7060: CANNOT_ACQUIRE_DATA_SOURCE」を参照してください。WebLogicで発生する個別の例外の詳細は、BEA WebLogic ServerのドキュメントとJDBCドライバのドキュメントを参照してください。
WebLogicの誤ったバージョン
原因: BEA WebLogic Server 6.0を使用してコードをコンパイルしようとしています。次の例外メッセージが返されます。

<DATE and TIME> <Error> <Management> <Error parsing XML descriptor for application TopLink_Domain:Name=ejb20_cmp_account, Type=Applicationweblogic.xml.process.ProcessorFactoryException: Could not locate processor for public id = "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN"atweblogic.xml.process.ProcessorFactory.getProcessor(ProcessorFactory.java:181)atweblogic.xml.process.ProcessorFactory.getProcessor(ProcessorFactory.java:164)

処置: BEA WebLogic Server 6.1を使用してコンパイルします。

BEA WebLogic 7.0の一般的な例外

次に示すのは、TopLinkとBEA WebLogic Server 7.0を使用してJARファイルをデプロイする際に発生する、最も一般的な例外の一部です。

開発例外

永続性タイプがない
原因: TopLink CMPのpersistence.installファイルにエントリがありません。これは、TopLinkのインストールが中断された場合や、BEA WebLogic Server Service Packが適用された場合に発生することがあります。次の例外メッセージが返されます。

Persistence type 'TopLink_CMP_2_0' with version 'X.0 which is referenced in bean 'Account' is not installed.The installed persistence types are: (WebLogic_CMP_RDBMS, 6.0), (WebLogic_CMP_RDBMS, 5.1.0), (WebLogic_CMP_RDBMS, 7.0)ERROR: ejbc found errors

処置: <WebLogic InstallDir>/weblogic700/lib/persistenceディレクトリで、persistence.installファイルを編集して、新しい行TopLink_CMP_Descriptor.xmlを追加します。既存のpersistence.installファイルを<ORACLE_HOME>/toplink/configディレクトリにあるファイルのバージョンに置き換えることもできます。
永続性タイプがない
原因: TopLink CMPのpersistence.installファイルにエントリがありません。これは、TopLinkのインストールが中断された場合や、BEA WebLogic Server Service Packが適用された場合に発生することがあります。次の例外メッセージが返されます。

ERROR: atweblogic.ejb20.persistence.InstalledPersistence.initialize(InstalledPersistence.java:214)atweblogic.ejb20.persistence.InstalledPersistence.getInstalledType(InstalledPersistence.java:113)atweblogic.ejb20.deployer.MBeanDeploymentInfoImpl.getPersistenceType(MBeanDeploymentInfoImpl.java:584

処置: <WebLogic InstallDir>/weblogic700/lib/persistenceディレクトリで、persistence.installファイルを編集して、新しい行TopLink_CMP_Descriptor.xmlを追加します。既存のpersistence.installファイルを<ORACLE_HOME>/toplink/configディレクトリにあるファイルのバージョンに置き換えることもできます。
WebLogicの誤ったバージョン
原因: BEA WebLogic Server 6.1を使用してJARファイルをコンパイルしようとしています。次の例外メッセージが返されます。

ERROR: Error processing 'META-INF/weblogic-ejb-jar.xml': The public id, "-//BEA Systems, Inc.//DTD WebLogic 7.0.0 EJB//EN", specified in the XML document is invalid.Use one of the following valid public ids:"-//BEA Systems, Inc.//DTD WebLogic 5.1.0 EJB//EN""-//BEA Systems, Inc.//DTD WebLogic 6.0.0 EJB//EN"ERROR: ejbc found errors

処置: BEA WebLogic Server 7.0を使用してコンパイルします。

デプロイ例外

永続性タイプがない
原因: TopLink CMPのpersistence.installファイルにエントリがありません。これは、TopLinkのインストールが中断された場合や、BEA WebLogic Server Service Packが適用された場合に発生することがあります。次の例外メッセージが返されます。

Error from ejbc: Persistence type 'TopLink_CMP_2_0' with version 'X.0 which is referenced in bean 'Account' is not installed.The installed persistence types are: (WebLogic_CMP_RDBMS, 6.0), (WebLogic_CMP_RDBMS, 5.1.0), (WebLogic_CMP_RDBMS, 7.0).Persistence type 'TopLink_CMP_2_0' with version 'X.0 which is referenced in bean 'Account' is not installed.The installed persistence types are: (WebLogic_CMP_RDBMS, 6.0), (WebLogic_CMP_RDBMS, 5.1.0), (WebLogic_CMP_RDBMS, 7.0)

処置: <WebLogic InstallDir>/weblogic7.0/lib/persistenceディレクトリで、persistence.installファイルを編集して、新しい行TopLink_CMP_Descriptor.xmlを追加します。既存のpersistence.installファイルを<ORACLE_HOME>/toplink/configディレクトリにあるファイルのバージョンに置き換えることもできます。
永続性リソースのロード・エラー
原因: toplink.jarファイルがクラスパスに正しく設定されていません。次の例外メッセージが返されます。

java.lang.NullPointerExceptionatweblogic.ejb20.deployer.EJBDeployer.deactivate(EJBDeployer.java:1513)atweblogic.ejb20.deployer.EJBDeployer.undeploy(EJBDeployer.java:301)atweblogic.ejb20.deployer.Deployer.deploy(Deployer.java:875)atweblogic.j2ee.EJBComponent.deploy(EJBComponent.java:70)

処置: クラスパスに<ORACLE_HOME>/toplink/jlib/toplink.jarファイルが含まれていることを確認します。
データ・ソースを起動できない
原因: データ・ソースの設定中に例外が発生しました。次の例外メッセージが返されます。

EXCEPTION [TOPLINK-7060] (TopLink (WLS CMP) - X.X.X): oracle.toplink.exceptions.ValidationExceptionEXCEPTION DESCRIPTION: Cannot acquire datasource [jdbc/ejbNonJTSDataSource].INTERNAL EXCEPTION: javax.naming.NameNotFoundException: Unable to resolve jdbc.ejbNonJTSDataSource Resolved: '' Unresolved:'jdbc' ; remaining name 'ejbNonJTSDataSource'

処置: ネストしたSQL例外をチェックして、例外の原因を特定します。詳細は、「7060: CANNOT_ACQUIRE_DATA_SOURCE」を参照してください。WebLogicで発生する個別の例外の詳細は、BEA WebLogic ServerのドキュメントとJDBCドライバのドキュメントを参照してください。

BEA WebLogic 8.1の一般的な例外

次に示すのは、TopLinkとBEA WebLogic Server 8.1を使用してJARファイルをデプロイする際に発生する、最も一般的な例外の一部です。

開発例外

永続性タイプがない
原因: TopLink CMPのpersistence.installファイルにエントリがありません。これは、TopLinkのインストールが中断された場合や、BEA WebLogic Server Service Packが適用された場合に発生することがあります。次の例外メッセージが返されます。

Persistence type 'TopLink_CMP_2_0' with version 'X.0 which is referenced in bean 'Account' is not installed.The installed persistence types are: (WebLogic_CMP_RDBMS, 7.0), (WebLogic_CMP_RDBMS, 6.0), (WebLogic_CMP_RDBMS, 5.1.0).

処置: <WebLogic InstallDir>/weblogic81/lib/persistenceディレクトリで、persistence.installファイルを編集して、新しい行TopLink_CMP_Descriptor.xmlを追加します。既存のpersistence.installファイルを<ORACLE_HOME>/toplink/configディレクトリにあるファイルのバージョンに置き換えることもできます。
永続性ファイルにCMPエントリがない
原因: TopLink CMPのpersistence.installファイルにエントリがありません。これは、TopLinkのインストールが中断された場合や、BEA WebLogic Server Service Packが適用された場合に発生することがあります。次の例外メッセージが返されます。

ERROR: ejbc couldn't invoke compiler

処置: <WebLogic InstallDir>/weblogic81/lib/persistenceディレクトリで、persistence.installファイルを編集して、新しい行TopLink_CMP_Descriptor.xmlを追加します。既存のpersistence.installファイルを<ORACLE_HOME>/toplink/configディレクトリにあるファイルのバージョンに置き換えることもできます。
永続性リソースのロード・エラー
原因: toplink.jarファイルがクラスパスに正しく設定されていません。次の例外メッセージが返されます。

Error occurred while loading persistence resource TopLink_CMP_Descriptor.xml. Make sure that the persistence type is in your classpath.

ERROR: ejbc couldn't invoke compiler

処置: クラスパスに<ORACLE_HOME>/toplink/jlib/toplink.jarファイルが含まれていることを確認します。
WebLogicの誤ったバージョン
原因: BEA WebLogic Server 7.0を使用してEJB JARファイルをコンパイルしようとしています。次の例外メッセージが返されます。

ERROR: ejbc found errors while processing the descriptor for std_cmp20-singlebean.jar:ERROR: ejbc found errors while processing 'META-INF/weblogic-ejb-jar.xml': The public id, "-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN", specified in the XML document is invalid.Use one of the following valid public ids:"-//BEA Systems, Inc.//DTD WebLogic 5.1.0 EJB//EN""-//BEA Systems, Inc.//DTD WebLogic 6.0.0 EJB//EN""-//BEA Systems, Inc.//DTD WebLogic 7.0.0 EJB//EN"ERRORejbc found errors

処置: BEA WebLogic Server 8.1を使用してコンパイルします。

デプロイ例外

永続性タイプがない
原因: TopLink CMPのpersistence.installファイルにエントリがありません。これは、TopLinkのインストールが中断された場合や、BEA WebLogic Server Service Packが適用された場合に発生することがあります。次の例外メッセージが返されます。

Error Deployer BEA-149201 Failed to complete the deployment task with ID 0 for the application _appsdir_cmp20-singlebean_ear. weblogic.management.ApplicationException: Exception:weblogic.management.ApplicationException: prepare failed for cmp20-singlebean.jarModule: cmp20-singlebean.jar Error: Exception preparing module: EJBModule(cmp20-singlebean.jar,status=NEW)Persistence type 'TopLink_CMP_2_0' with version 'X.0 which is referenced in bean 'Account' is not installed.The installed persistence types are: (WebLogic_CMP_RDBMS, 7.0), (WebLogic_CMP_RDBMS, 6.0), (WebLogic_CMP_RDBMS, 5.1.0)

処置: <WebLogic InstallDir>/weblogic81/lib/persistenceディレクトリで、persistence.installファイルを編集して、新しい行TopLink_CMP_Descriptor.xmlを追加します。既存のpersistence.installファイルを<ORACLE_HOME>/toplink/configディレクトリにあるファイルのバージョンに置き換えることもできます。
永続性リソースのロード・エラー
原因: toplink.jarファイルがクラスパスに正しく設定されていません。次の例外メッセージが返されます。

Error Deployer BEA-149201 Failed to complete the deployment task with ID 2 for the application _appsdir_cmp20-relationships_ear.weblogic.management.ApplicationException: Exception:weblogic.management.ApplicationException: prepare failed for cmp20-relationships.jarModule: cmp20-relationships.jar Error: Exception preparing module: EJBModule(cmp20-relationships.jar,status=NEW) Unable to deploy EJB:.\TopLink_Demos\stage\_appsdir_cmp20-relationships_ear\cmp20-relationships.jar from cmp20-relationships.jar: [EJB:011004]Error occurred while loading persistence resource TopLink_CMP_Descriptor.xml. Make sure that the persistence type is in your classpath.at weblogic.ejb20.persistence.InstalledPersistence.initialize(InstalledPersistence.java:212)at weblogic.ejb20.persistence.InstalledPersistence.getInstalledType(InstalledPersistence.java:114)

処置: クラスパスに<ORACLE_HOME>/toplink/jlib/toplink.jarファイルが含まれていることを確認します。

IBM WebSphere Application Serverの一般的な例外

IBM WebSphere Application Serverを起動すると、アプリケーション・サーバー内でデプロイ用に指定されているJARファイルのデプロイが試行されます。

通常、サーバーの起動時に発生する例外は、クラスパスの問題、環境変数の構成、およびデータベース・ログインの構成に関係する構成上の問題です。サーバーの起動後、IBM WebSphere Application Serverのドキュメントを参照してください。

この項では、IBM WebSphere Application Serverの実行時に発生する例外の一部を、考えられる原因および推奨される解決策とともに取り上げます。

クラスが見つからないことに関する例外
原因: クラスは、WebSphereアプリケーション拡張機能のクラスパス、あるいはEJBまたはWARモジュールに含まれていません。
処置: 必要なクラスがすべて正しい場所に含まれていることを確認します。クラスパスの場所の詳細は、IBM WebSphere InfoCenterを参照してください。
クラスが見つからないことに関する例外
原因: 必要なTopLink JARファイルがアプリケーション拡張機能のクラスパスにコピーされていません。
処置: toplink.jarおよびantlr.jarファイルが<WebSphere install>\lib\appディレクトリにコピーされていることを確認します。
oracle.toplink.exceptions.DatabaseException
原因: TopLink例外が発生しました。
処置: 個々の例外コードを参照してください。例外コードは、[TopLink-1016]のように大カッコで囲まれて例外メッセージの中に表示されます。ここに示す例外は、プロパティ・ファイルの読取りに関する例外や、不適切なマッピングによる検証エラーです。

発生する可能性のあるデータベース例外の詳細は、「TopLink例外参照」の章の「データベース例外(4002〜4018)」の項を参照してください。また、通信例外の詳細は、「TopLink例外参照」の章の「通信例外(12000〜12003)」の項を参照してください。

例外[6066]
原因: Beanがトランザクション外部で作成された後、2番目のBeanがトランザクション内部または外部で作成されました。次の例外メッセージが返されます。

oracle.toplink.exceptions.QueryException: The object <Object> of class <class> with identity hashcode <hashcode> is not from this Unit of Work object space but the parent session's. The object was never registered in this Unit of Work, but read from the parent session and related to an object registered in the Unit of Work.Ensure that you are correctly registering your objects. If you are still having problems, you can use the UnitOfWork.validateObjectSpace() method to help debug where the error occurred. Please see the manual and FAQ for more information.

処置: すべてのBean作成処理がトランザクションのコンテキスト内で実行されることを確認します。
原因: ejbPassivateメソッドでBeanが除去されませんでした。
処置: ejbPassivateメソッドでBeanが除去されることを確認します。
原因: Beanからオブジェクトへのリレーションシップが私有されていません。
処置: Beanからオブジェクトへのリレーションシップがすべて私有されていることを確認します。
例外[7064]
原因: 誤った主キー・オブジェクトがBeanで使用されています。次の例外メッセージが返されます。

oracle.toplink.exceptions.ValidationException: Exception occurred in reflective EJB bean primary key extraction, please ensure your primary key object is defined correctly: key = 301, bean = <beanName>

処置: 正しい主キー・オブジェクトがBeanで使用されていることを確認します。
例外[7066]
原因: Beanをトランザクション外部で作成または削除しようとしました。次の例外メッセージが返されます。

oracle.toplink.exceptions.ValidationException: Cannot create or remove beans unless a JTS transaction is present, bean=<bean>

処置: Beanの削除と作成がすべてトランザクション内部で実行されることを確認します。
例外[7068]
原因: toplink_session_name環境変数で指定されたセッションに対してtoplink.propertiesファイルに指定されたプロジェクト・クラスが見つかりません。次の例外メッセージが返されます。

oracle.toplink.exceptions.ValidationException: The project class <projectclass> was not found for the <toplink_session_name> using default class loader.

処置: 例外に示されたプロジェクト・クラスがIBM WebSphere Application Serverの従属クラスパスに存在することを確認します。
例外[7069]
原因: 修正メソッドがコールされましたが、見つかりません。次の例外メッセージが返されます。

oracle.toplink.exceptions.ValidationException: An exception occurred looking up or invoking the project amendment method, <amendmentMethod> on the class <amendmentClass>;

処置: 必要な修正メソッドが指定したクラスに存在することを確認します。
例外[7070]
原因: toplink.propertiesファイルが見つかりません。次の例外メッセージが返されます。

oracle.toplink.exceptions.ValidationException: A toplink.properties resource bundle must be located on the classpath in a TopLink directory.

処置: toplink.propertiesファイルの場所がクラスパス上であることを確認します。
例外[7079]
原因: 示されたディスクリプタが、デプロイメント・ディスクリプタで指定されているセッションに見つかりませんでした。次の例外メッセージが返されます。

EXCEPTION DESCRIPTION: The descriptor for [<bean class>] was not found in the session [<session name>].Check the project being used for this session.

処置: toplink-ejb-jar.xmlファイルに指定されているプロジェクトが目的のプロジェクトであることを確認します。また、欠落しているBeanクラスのディスクリプタがプロジェクトに含まれていることもチェックします。
例外[7101]
原因: toplink-ejb-jar.xmlファイルが見つかりませんでした。次の例外メッセージが返されます。

No "meta-inf/toplink-ejb-jar.xml" could be found in your classpath.The CMP session could not be read in from file.

処置: toplink-ejb-jar.xmlファイルが、meta-infディレクトリの下のデプロイされたejb-jarファイル内にあることを確認します。
例外[9002]
原因: toplink-ejb-jar.xmlファイルでセッションに対して指定されているプロジェクト・クラスが見つかりません。次の例外メッセージが返されます。

EXCEPTION [TOPLINK-9002] (TopLink - X.X.X): oracle.toplink.exceptions.SessionLoaderExceptionEXCEPTION DESCRIPTION: Unable to load Project class [<project class>].

処置: プロジェクト・クラスがエンティティBeanとともに、デプロイされたJARファイルに含まれていることを確認します。

実行時の問題

この項では、実行時にIBM WebSphere Application Server用のTopLink CMPを使用している場合に発生する、一般的な例外の一部を示します。

例外[6026]
原因: 必要な名前付き問合せが存在しません。次の例外メッセージが返されます。

oracle.toplink.exceptions: Query is not defined

処置: 名前付き問合せを実装します。例外のスタック・トレースには、失敗したファインダ・メソッドが含まれています。

TopLinkのIBM WebSphere用デプロイ・ツールの一般的な例外

この項では、TopLinkのIBM WebSphere Application Server用デプロイ・ツールの実行時に発生する、一般的な例外を示します。

クラスが見つからないことに関する例外
原因: 指定したクラスが見つかりません。デプロイ・ツールのクラスパスまたはシステムのクラスパスに含まれていません。
処置: 必要なクラスがすべて正しいクラスパスに含まれていることを確認します。クラスパスの設定の詳細は、『IBM WebSphere Getting Started』ドキュメントを参照してください。

注意:

デプロイ・ツールでは、外部IBMクラスをコールしてデプロイ済コードを生成します。これらのクラスからスローされる例外はすべて、System.outに記述されます。「Tracing」を選択すると、可能なかぎり詳しい情報を表示できます。