您好我在具有EJB 3.0持久性的glassfish服务器上开发了我的Java应用程序。在我的本地机器上,应用程序运行正常,并且完美地保存了数据。但是,当我在linux服务器上部署它时,每当我持久保存任何数据时,它都会给我这个EJB异常错误:
Caused by: Java.lang.IllegalStateException: Attempting to execute an operation on a closed EntityManagerFactory.
这是我的persistence.xml文件:
<?xml version="1.0" encoding="UTF-8" ?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="MyPU" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/security</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="eclipselink.ddl-generation" value="create-tables" />
</properties>
</persistence-unit>
</persistence>
可能导致这种情况的原因是什么?
PS:我正在使用Glassfish 3.1.43,EJB 3.0
答案 0 :(得分:1)
您使用的数据库是什么?我将验证您在连接池中配置的用户是否有权创建表。
答案 1 :(得分:0)
我终于设法解决了!!问题是数据库连接没有正确设置!!现在我已连接到数据库并且数据已保留!!