【问题标题】:CWWJP0009E error when creating persistence unitCWWJP0009E 创建持久性单元时出错
【发布时间】:2014-06-10 13:06:54
【问题描述】:
在 IBM WebSphere Application Server WAS 7 中启动我的 Java EE 应用程序时遇到以下错误。
JPAPUnitInfo E CWWJP0009E: 服务器无法从文件中的 org.hibernate.ejb.HibernatePersistence 提供程序中为 NAME_OF_THE_PERSISTENCE_UNIT 持久单元创建 EntityManagerFactory 工厂:/C:/PATH/TO/应用程序/target/classes/模块。
您的持久性单元的定义肯定有问题。您可以在 persistence.xml 文件中找到配置。要获得更详细的信息,您必须启用服务器的 JPA 支持跟踪。
【问题讨论】:
标签:
jakarta-ee
jpa
persistence.xml
ibm-was
【解决方案1】:
在 JPA 的 WAS 中启用跟踪
从应用服务器管理控制台的主菜单中选择:
- 疑难解答
- 日志和跟踪
- 您的服务器
- 更改日志详细级别
- 切换到两个选项卡之一:
- “配置”用于持久更改,重启后生效
- “运行时”用于立即生效的更改,重启后会恢复
- 添加来自
com.ibm.ws.jpa.*的所有严重性的消息
您的最终跟踪配置可能如下所示:
*=info: com.ibm.ws.jpa.*=all
这可能会立即生效,也可能会在重新启动后生效,具体取决于您在上面的选择。
现在您可以在服务器的trace.log 文件中找到要记录的信息,该文件存储在服务器的日志目录中。例如
C:\IBM\SDP\runtimes\base_v7\profiles\AppSrv01\logs\server1
解决方案
您的问题的原因可能千差万别。所以你必须依赖你的跟踪文件的诊断。
但是,在我的情况下,我在那里发现了以下内容:
JPAPUnitInfo 3 捕获意外异常:org.hibernate.AnnotationException:使用@OneToMany 或@ManyToMany 针对未映射的类:com.acme.Class1.prop2[com.acme.Class2]
您也可以留意AnnotationException。就我而言,我在persistence.xml 的PU 定义中添加了Class2。那行得通。
祝大家好运;-)