- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 EclipseLink 运行 Web 服务,它运行良好。但有时我会收到一个异常提示“无法预部署 PersistenceUnit”。我不知道为什么我会得到这个。其他一切似乎都正常,异常似乎不会干扰应用程序,它只是被捕获了。
Exception Description: Unable to predeploy PersistenceUnit [MyLibPU] in invalid state [Undeployed]
javax.persistence.PersistenceException: Exception [EclipseLink-28017] (Eclipse Persistence Services - 2.2.0.v20110202-r8913): org.eclipse.persistence.exceptions.EntityManagerSetupException
Exception Description: Unable to predeploy PersistenceUnit [MyLibPU] in invalid state [Undeployed]
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:956)
at org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactory(PersistenceProvider.java:121)
at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
....
....
Caused by: Exception [EclipseLink-28017] (Eclipse Persistence Services - 2.2.0.v20110202-r8913): org.eclipse.persistence.exceptions.EntityManagerSetupException
Exception Description: Unable to predeploy PersistenceUnit [MyLibPU] in invalid state [Undeployed]
at org.eclipse.persistence.exceptions.EntityManagerSetupException.cannotPredeploy(EntityManagerSetupException.java:202)
... 30 more
在异常中,我可以找到方法中一行的踪迹:
EntityManagerFactory emf = Persistence.createEntityManagerFactory("MyLibPU");
为什么我会收到这个?
编辑
这是当 eclipselink 日志记录设置为 FINEST
时我得到的输出。
[EL Finest]: 2012-04-23 15:19:06.025--ServerSession(2134178364)--Thread(Thread[Finalizer,8,system])--End undeploying Persistence Unit MyLibPU; session file:/home/Rox/MyLib/trunk/MyLib/build/classes/_MyLibPU; state Undeployed; factoryCount 0
[EL Finest]: 2012-04-23 15:19:06.025--ServerSession(2113649746)--Thread(Thread[Finalizer,8,system])--Begin undeploying Persistence Unit MyLibPU; session file:/home/Rox/MyLib/trunk/MyLib/src/_MyLibPU; state Deployed; factoryCount 3
[EL Finest]: 2012-04-23 15:19:06.025--ServerSession(2113649746)--Thread(Thread[Finalizer,8,system])--End undeploying Persistence Unit MyLibPU; session file:/home/Rox/MyLib/trunk/MyLib/src/_MyLibPU; state Deployed; factoryCount 2
Apr 23, 2012 3:19:06 PM com.sun.xml.internal.ws.server.sei.EndpointMethodHandler invoke
SEVERE: Exception [EclipseLink-28017] (Eclipse Persistence Services - 2.2.0.v20110202-r8913): org.eclipse.persistence.exceptions.EntityManagerSetupException
Exception Description: Unable to predeploy PersistenceUnit [MyLibPU] in invalid state [Undeployed]
javax.persistence.PersistenceException: Exception [EclipseLink-28017] (Eclipse Persistence Services - 2.2.0.v20110202-r8913): org.eclipse.persistence.exceptions.EntityManagerSetupException
Exception Description: Unable to predeploy PersistenceUnit [MyLibPU] in invalid state [Undeployed]
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:956)
at org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactory(PersistenceProvider.java:121)
at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
at com.mylib.MyImplementation.getPersons(MyImplementation.java:171)
at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.sun.xml.internal.ws.api.server.InstanceResolver$1.invoke(InstanceResolver.java:235)
at com.sun.xml.internal.ws.server.InvokerTube$2.invoke(InvokerTube.java:135)
at com.sun.xml.internal.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:246)
at com.sun.xml.internal.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:85)
at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Fiber.java:626)
at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Fiber.java:585)
at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Fiber.java:570)
at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Fiber.java:467)
at com.sun.xml.internal.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:299)
at com.sun.xml.internal.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:593)
at com.sun.xml.internal.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:244)
at com.sun.xml.internal.ws.transport.http.server.WSHttpHandler.handleExchange(WSHttpHandler.java:95)
at com.sun.xml.internal.ws.transport.http.server.WSHttpHandler.handle(WSHttpHandler.java:80)
at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77)
at sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:83)
at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:80)
at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:668)
at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77)
at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:640)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: Exception [EclipseLink-28017] (Eclipse Persistence Services - 2.2.0.v20110202-r8913): org.eclipse.persistence.exceptions.EntityManagerSetupException
Exception Description: Unable to predeploy PersistenceUnit [MyLibPU] in invalid state [Undeployed]
at org.eclipse.persistence.exceptions.EntityManagerSetupException.cannotPredeploy(EntityManagerSetupException.java:202)
... 30 more
[EL Finer]: 2012-04-23 15:20:06.003--Thread(Thread[pool-1-thread-61,5,main])--fixUNC: before fixing: url = file:/home/Rox/MyLib/build/classes/, authority = , file = /home/Rox/MyLib/build/classes/ (There is no English translation for this message.)
[EL Finer]: 2012-04-23 15:20:06.012--Thread(Thread[pool-1-thread-61,5,main])--fixUNC: after fixing: url = file:/home.....
编辑 2
我的 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="MyLibPU" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>com.mylib.Person</class>
<class>com.mylib.Group</class>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/MY_DB"/>
<property name="javax.persistence.jdbc.password" value="MyPassword"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="eclipselink.logging.level" value="FINEST"/>;
<property name="eclipselink.logging.level.sql" value="FINEST"/>;
<property name="eclipselink.logging.parameters" value="true"/>;
</properties>
</persistence-unit>
</persistence>
最佳答案
如果错误是偶发的,这可能意味着这是一个时间问题。此外,显然您在应用程序的生命周期中多次创建工厂(如果我错了请告诉我)。因此,可能是对您的 Web 应用程序的并发请求触发了工厂的并发创建。这种情况可能不受支持。
无论如何只创建一次工厂是好的。参见 this question关于如何去做。然后您可以在其上同时调用 createEntityManager
—— 此方法是线程安全的。
关于java - 我得到一个 PersistenceException,我不明白为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10241874/
我遇到了一个使用 Toplink essentials 作为持久性提供程序的 java 桌面应用程序的奇怪行为。 我有一个目录,其中包含我的应用程序所需的一切:一个 jar、一个 lib 文件夹和一个
我有 2 个实体: 大师: @Entity @Table(name = "master") public class Master implements java.io.Serializable {
我使用带有单个持久性单元的 OpenJPA 2.0。 在我的 persistence.xml 中,我选择使用配置 transaction-type="RESOURCE_LOCAL" 并手动管理事务。
我离开 Java 世界有一段时间了,我对 JPA 还很陌生。我有一个数据模型,其中 WindTurbines 可以有多个 PerformanceCurve,而 PerformanceCurve 又包含
我正在使用 Play Framework 1.2.5 和 Java,但这更多是一个 JPA 问题。 在我的项目中,我经常通过电子邮件搜索用户,因此我创建了以下方法: public static Use
我正在使用 EclipseLink 运行 Web 服务,它运行良好。但有时我会收到一个异常提示“无法预部署 PersistenceUnit”。我不知道为什么我会得到这个。其他一切似乎都正常,异常似乎不
我正在尝试使用EclipseLink作为ORM和Gradle与Jersey一起建立一个测试REST项目。 当我想测试ORM功能时,遇到以下异常: Exception in thread "main"
我们正在尝试使用 JPA 构建 JSF 应用程序。现在,我们想要实现登录功能,但是当我们在 glassfish 服务器上运行应用程序时,出现异常: javax.persistence.Persiste
我在 Play Framework 2.2.3 中有以下文件 Controller : public class Comment extends Controller { public Res
我有一个 Topic 类,它扩展了 Model。 创建表主题的第一条记录很好,但无法创建另一条记录: [PersistenceException: ERROR executing DML bindLo
我正在尝试使用 Java、EJB、JPA 和 MYSQL 数据库编写应用程序。Eclipse 版本 - eclipse Indigo服务器- JBOSS v5.0 当我启动服务器并尝试在服务器上运行我
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
我在学习hibernate,遇到了异常——javax.persistence.PersistenceException但是我不明白这样做的确切原因。什么场景会抛出这个异常? 最佳答案 使用 Entit
我是 Hibernate、servlet 的新手。我正在尝试使用 hibernate 从 html 注册表将数据存储在 mysql 数据库中。但是我不断收到此错误作为根本原因。这是弹出的两个根本原因。
给出这个简单的例子(https://github.com/lelmarir/jpa-cascade-bug-test): runInTransaction(em, () -> { Parent
我是 JPA 的新手,当我尝试运行以下代码时,它显示错误为“cvc-elt.1: 找不到元素‘persistence’的声明。” 我无法修复这个错误,你能帮我解决这个问题吗? 干杯 拉杰什 持久化.x
我遇到了 JPA 异常 "javax.persistence.PersistenceException: Transaction failed to flush" 然后我从系统中删除了本地数据存储(d
造成原因: java.io.FileNotFoundException: class path resource [] cannot be resolved to URL because it doe
我正在调用一个函数,该函数试图检查我的 MYSQL 表中是否存在特定记录。 函数: public String get_value(long nodeid,String ts) {
我在我的应用程序中使用 retrofit2.0 和 simpleframework.xml 库。 问题是当我在没有 proguard 的情况下运行应用程序时它工作正常但是当我运行 proguard 时
我是一名优秀的程序员,十分优秀!