部署到没有为com.mysql.jdbc.jdbc2.optional.MysqlXADataSource设置的Glassfish类路径

Sar*_*ara 6 eclipse deployment ear glassfish

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)...
Run Code Online (Sandbox Code Playgroud)

我已将mysql-connector jar文件复制到libGlassfish目录中,但仍然出现上述错误.

如何确保Glassfish可以为已部署的应用程序找到我的JDBC驱动程序?

Rob*_*lty 9

您需要为Glassfish提供MySQL JDBC jar文件.

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

编辑:

如何使用不同的JDBC驱动程序?我应该在哪里复制罐子?

建议将域驱动程序(由域中的所有应用程序使用)放在domain-dir/lib或domain-dir/lib/classes中.今天需要重新启动应用程序服务器实例,以便JDBC驱动程序对域中部署的应用程序可见.

来自https://blogs.oracle.com/sivakumart/entry/classloaders_in_glassfish_an_attempt

因此,将jar文件移动到您要部署应用程序的域下面的lib目录中.默认的Glassfish域是domain1.

重启Glassfish,这应该工作.

有一个Maven Glassfish插件可能值得评估http://maven-glassfish-plugin.java.net/使用Maven,这个插件将有助于自动化部署步骤.这比手动部署更强大.当然是你的电话.