Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse 未为com.mysql.jdbc.jdbc2.optional.MysqlXADataSource设置部署到Glassfish类路径_Eclipse_Deployment_Glassfish_Ear - Fatal编程技术网

Eclipse 未为com.mysql.jdbc.jdbc2.optional.MysqlXADataSource设置部署到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

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连接器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连接。