6

Glassfish がcom.mysql.jdbc.jdbc2.optional.MysqlXADataSourceパッケージをロードしていません。

次のエラーがスローされます

javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse Persistence
Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: 
Error in allocating a connection. Cause: Class name is wrong or classpath is not set    
for:com.mysql.jdbc.jdbc2.optional.MysqlXADataSource
Error Code: 0 at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy
(EntityManagerSetupImpl.java:517)...

mysql-connector jar ファイルをlibGlassfish のディレクトリにコピーしましたが、それでも上記のエラーが発生します。

デプロイされたアプリケーションの JDBC ドライバーを Glassfish が見つけられるようにするにはどうすればよいですか?

4

3 に答える 3

10

MySQL JDBC jar ファイルを Glassfish で使用できるようにする必要があります。

http://ushainformatique.com/blog/2010/03/19/jdbcwithglassfish/

編集:

さまざまな JDBC ドライバーを使用するにはどうすればよいですか? jar をどこにコピーすればよいですか?

ドメイン内のすべてのアプリケーションで使用される JDBC ドライバーを domain-dir/lib または domain-dir/lib/classes に配置することをお勧めします。ドメインにデプロイされたアプリケーションが JDBC ドライバーを認識できるようにするには、アプリケーション サーバー インスタンスを再起動する必要があります。

https://blogs.oracle.com/sivakumart/entry/classloaders_in_glassfish_an_attemptより

そのため、アプリをデプロイするドメインの下の lib ディレクトリに jar ファイルを移動します。デフォルトの Glassfish ドメインは domain1 です。

Glassfish を再起動すると、これが機能するはずです。

http://maven-glassfish-plugin.java.net/を評価する価値がある Maven Glassfish プラグインがあり、Mavenを使用すると、このプラグインはデプロイ手順の自動化に役立ちます。これは、手動で展開するよりも堅牢です。もちろん、あなたの電話。

于 2012-06-10T02:41:48.780 に答える
2

ドライバーをクラスパスに追加するだけでなく、appserv-rt.jar ファイルをプロジェクトのビルド パスに追加してみてください (jar は Glassfish の lib ディレクトリにあります)。他のすべての jar を含めたくない場合は、最初に appserv-rt jar を含むライブラリを作成し、それをプロジェクトのビルド パスに追加する必要があります。

于 2013-08-18T06:04:07.370 に答える
-3

./asadmin start-database を使用して修正できます これにより Derby が起動します (これが必要な理由がわからない、バグである可能性があり、アプリでこの DB を使用していません) :)

于 2013-12-10T06:59:42.777 に答える