0

将应用程序从 IntelliJ 重新部署到 Glassfish v4 时出现以下异常:

[2013-09-11T12:55:44.122+0300] [glassfish 4.0] [SEVERE] [] [javax.enterprise.system.core] [[
  Exception while deploying the app [gtwcustreporter_war_exploded] : Exception [EclipseLink-23004] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.TransactionException
Exception Description: Error obtaining the Transaction Manager
Internal Exception: Exception [EclipseLink-23001] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.TransactionException
Exception Description: Error looking up external Transaction resource under JNDI name [java:appserver/TransactionManager]
Internal Exception: javax.naming.NameNotFoundException: remaining name: /appserver/TransactionManager]]

但是,重新启动整个服务器并部署应用程序可以正常工作。只有重新部署失败。

我的假设是应用程序描述符中缺少某些内容,但我似乎找不到我的错误。

我已经在 Glassfish 的 JDBC 数据库池和 JDBC 资源中定义了数据库(MySQL)(当事务管理器不崩溃时,我可以对其进行读写)

这是我的persistence.xml:

<persistence-unit name="GTWunit" transaction-type="JTA">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <jta-data-source>jdbc/gtwcust</jta-data-source>
    <class>net.metarex.ga.jpa.LocationCode</class>
    <class>net.metarex.ga.jpa.Shipment</class>
</persistence-unit>

在工件中,我添加了 Glassfish 提供的 LIB 和 Java-EE 6 作为编译依赖项。

有什么想法可能是根本原因吗?

4

1 回答 1

0

您是否尝试过直接部署到 GlassFish?重新部署在 IntelliJ 之外也会失败吗?

您在persistence.xml 中明确包含实体类的任何特定原因。

持久性提供者也是如此。

您为什么按照提供的方式添加 GlassFish 的 LIB。标准的 Java EE 6 应用程序甚至不需要这样做。

于 2013-09-20T00:11:47.380 回答