Eclipse 未为com.mysql.jdbc.jdbc2.optional.MysqlXADataSource设置部署到Glassfish类路径
Glassfish没有加载Eclipse 未为com.mysql.jdbc.jdbc2.optional.MysqlXADataSource设置部署到Glassfish类路径,eclipse,deployment,glassfish,ear,Eclipse,Deployment,Glassfish,Ear,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 In
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连接器jar文件复制到Glassfish的lib
目录中,但仍然会出现上述错误
如何确保Glassfish可以为部署的应用程序找到我的JDBC驱动程序?您需要使MySQL JDBC jar文件可供Glassfish使用 编辑: 如何使用不同的JDBC驱动程序?我应该在哪里复制罐子? 建议放置JDBC驱动程序,所有 域中的应用程序、域目录/库中的应用程序或 域目录/lib/classes。重新启动应用程序服务器实例 现在需要,以便应用程序可以看到JDBC驱动程序 部署在域中 从 因此,将jar文件移动到要部署应用程序的域下面的lib目录中。默认的Glassfish域是domain1 重新启动Glassfish,这应该可以工作
有一个Maven Glassfish插件可能值得使用Maven进行评估,该插件将有助于自动化部署步骤。这将比手动部署更加健壮。当然是您的调用。除了将驱动程序添加到类路径之外,您还应该尝试将appserv-rt.jar文件添加到项目的构建路径(jar位于Glassfish的lib目录中)。如果不想包含所有其他jar,那么应该首先创建一个包含appserv rt jar的库,然后将其添加到项目的构建路径中 我们可以使用 ./asadmin启动数据库 这将启动Derby(不知道为什么需要这样做,可能是一个bug,我在我的应用程序中不使用这个DB)
:)Sara,我已经发布了一个答案,可能会为你指明正确的方向。但是,如果您编辑了您的问题,使其包含您在Glassfish日志文件中看到的错误,那将非常好。@Rob,完成!我还有问题。好的,莎拉,谢谢你。编辑答案的方式与更具体的信息。罗伯谢谢。我的经理正在使用Netbeans,他从一开始就告诉我在那里添加jar文件。所以我已经在那里添加了它。但似乎对于eclipse,我也应该在其他地方添加它。问题仍然存在。谢谢Rob,它现在正在工作。除此之外,我还面临着另一个问题,这个问题后来不断地向我抛出同样的错误。它使用了连接池属性。我忘了在那里设置用户名和密码的属性。我找到了appserv-rt.jar,但是构建路径在哪里呢。我使用Netbeans和Payara。这是一个MySQL连接。