我正在将 derby 数据库换成 MySQL 数据库。我之前一切正常,但在我认为正确的配置之后,我得到了错误:
原因:javax.resource.ResourceException:类名错误或未设置类路径:com.mysql.jdbc.jdbc2.optional.MysqlDataSource
来自控制台的完整错误输出:
Caused by: javax.resource.ResourceException: Class name is wrong or classpath is not set for : com.mysql.jdbc.jdbc2.optional.MysqlDataSource
at com.sun.gjc.common.DataSourceObjectBuilder.getDataSourceObject(DataSourceObjectBuilder.java:292)
at com.sun.gjc.common.DataSourceObjectBuilder.constructDataSourceObject(DataSourceObjectBuilder.java:114)
at com.sun.gjc.spi.ManagedConnectionFactory.getDataSource(ManagedConnectionFactory.java:1292)
at com.sun.gjc.spi.DSManagedConnectionFactory.getDataSource(DSManagedConnectionFactory.java:148)
at com.sun.gjc.spi.DSManagedConnectionFactory.createManagedConnection(DSManagedConnectionFactory.java:101)
at com.sun.enterprise.resource.allocator.LocalTxConnectorAllocator.createResource(LocalTxConnectorAllocator.java:87)
我已经仔细检查了一些名称、连接池和其他资源。我还在两个项目的 glassfish 库中添加了 MySQL 驱动程序 .jar。数据库通过 Eclipse 肯定可以正常工作,因为我能够在 Eclipse 的数据库上下文中查看表并显示资源。所以我知道至少那些驱动程序工作正常。 persistence.xml 文件看起来也不错。它像应有的那样引用 jdbc/mydatabase jndi 引用,并且选择默认 JTA 作为管理类型。
有人有其他建议吗?谢谢
最佳答案
I've also added the MySQL driver .jars to the library of glassfish in both projects.
这显然没有做对。 JAR 必须放在 Glassfish 安装的 /glassfish/domains/[domainname]/lib/ext
文件夹中,其中 [domainname]
通常默认为 domain1
。您可以也不应该从 Eclipse 端配置它。
关于mysql - 未设置将 MySQL 数据库连接到 Glassfish 类路径或类名错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8349970/