我正在换掉一个用于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)
我已经仔细检查了一些名称,连接池和其他资源。我还在两个项目中将MySQL驱动程序.jars添加到glassfish库中。数据库肯定是通过eclipse正常工作的,因为我能够查看表并在eclipse的数据库上下文中显示资源。所以我知道至少那些司机正在正确地工作。 persistence.xml文件看起来也不错。它引用了jdbc / mydatabase jndi引用,并且默认选择JTA作为manament类型。
有没有人有其他建议?谢谢
答案 0 :(得分:37)
我还在两个项目中将MySQL驱动程序.jars添加到glassfish库中。
显然做得不对。 JAR必须进入Glassfish安装的/glassfish/domains/[domainname]/lib/ext
文件夹,其中[domainname]
通常默认为domain1
。您可以而且不应该从Eclipse端配置它。
答案 1 :(得分:23)
看起来我回复的时间很晚,但是那些会引用此主题的人可能会发现以下信息很有用。所以我在这里发帖子:
你去吧。如果您的MySql正在运行,那么它将成功ping数据库
答案 2 :(得分:5)
我将jar文件复制到$glassfish_install_folder\glassfish\lib
,之后就可以了。我使用 glassfish 4.0 。
从oracle检查link。
答案 3 :(得分:1)
我在2018年遇到此问题,并要注意,如果您使用的是glassfish 4(当前为5),则似乎必须使用Connector / J 5.1.47版本才能工作。如果使用当前版本(Connector / J 8.0.13),则无论将.jar文件放在何处,原始问题中提到的异常都会不断出现。
使用Connector / J 5.1.47,它可以完美工作。
答案 4 :(得分:0)
我在2019年遇到了此问题,并要注意,如果您使用的是docker image payara/server-full
(到目前为止,我使用的是5.194
),那么我放置驱动程序jar的位置是:
/opt/payara/appserver/glassfish/domains/production/lib/
最后,我在payara服务器的Dockerfile
中做了这样的事情:
RUN wget http://central.maven.org/maven2/org/mariadb/jdbc/mariadb-java-client/2.2.0/mariadb-java-client-2.2.0.jar \
-O /opt/payara/appserver/glassfish/domains/production/lib/mariadb-java-client-2.2.0.jar