当前位置: 首页 > 知识库问答 >
问题:

CWWJP0015E:为持久性单元创建实体管理器工厂时出错

史俊德
2023-03-14

在IBM WebSphere application Server was 7中启动EJB应用程序时,我遇到了以下错误。

JPAPUnitInfo E CWWJP0015E:org.hibernate.ejb.HibernatePersistence 持久性提供程序在尝试为 *YOUR_PERSISTENCE_UNIT* 持久性单元创建容器实体管理器工厂时出错。出现以下错误: [持久性单位: *YOUR_PERSISTENCE_UNIT*] 类或包未找到

虽然在启动期间可能不会注意到此错误消息,但最迟当您尝试获取实体管理器时,您将看到以下错误:

javax.ejb.EJBException:注入失败;嵌套异常为:Java . lang . illegalstateexception:没有为PU创建entitymanager factory:PuId =

对于不同的错误方案,错误消息是相似的,因此您可以在 Web 中找到很多解决方案,但没有一个可能适合。

共有2个答案

笪欣嘉
2023-03-14

如果有人再次遇到这个问题,就像最近我有非常简单的方法来找到确切的原因,但是很容易忽略它。

此异常的确切日志不会显示在 WebSphere 的主 SystemOut/Err 日志中。但是,可以在 ffdc 日志中找到它(即 %APP_PROGILE_PATH%\logs\ffdc)。

查找类似以下的条目

[2/18/15 1:49:25:547 UTC]0000004e FfdcProvider W com.ibm.ws.ffdc.impl。FfdcProvider登录事件FFDC1003I:FFDC事件在\IBM\AppSrv\logs\FFDC\server1_6d42a5e6_15.02.18_01.49.25.132223712721520859534.txt com.IBM.ws.jpa.management.JPAPUnitInfo上发出。CreateMFactory 759

在SystemOut中CWWJP0015E异常之前。登录以查找事件的确切文件名。

如果没有此异常的条目,请尝试设置更高的日志级别。但是,对于默认的WebSphere设置,它不应该是必需的。1.转到:WebSphere管理控制台

钮鸿煊
2023-03-14

事实上,来自未找到的错误消息类或包的提示是正确的,尽管没有那么有用,因为没有告诉丢失的类名。

在我的例子中,我的持久性中列出了一个类。xml,它已经不存在了。

要查看此错误消息的来源,请查看Ejb3Configuration.addNamedAnnotatedClasses(...),您会发现以下内容:

throw new PersistenceException( getExceptionHeader() +  "class or package not found", cnfe );

因此,在<code>cnfe ClassNotFoundException<code>中可以找到未找到的类的信息,但不幸的是,它没有以某种方式传播到日志文件。

要访问该信息,只需在此处放置一个调试断点并检查 cnfe 对象。

 类似资料:
  • http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd“> 但面对这个例外: 任何帮助都将不胜感激...

  • 我有一个用例,我想我需要两个实体管理器,它们访问相同的持久性单元。所以本质上,我希望在同一个数据库上有两个持久性上下文。这是否可以通过PersistenceContext注释实现? 我想写以下内容,但不知道如何告诉JPA注入两个不同的manager实例。 我想我可以切换到应用程序管理的事务,然后我可以使用工厂创建另一个事务。但是我不想自己管理事务,如果不是绝对必要的话。

  • 我试图集成Spring和JSF,我坚持使用对象。我不想处理事务(begin-commit等) 经过一些谷歌,我可以找到一个答案,给我需要在这个链接 我使用eclipselink作为ORM和Oracle 11g数据库,并使用带有Maven的Glassfish Server3.1。我更喜欢Spring配置的注释。我用 相关类中的注释。我的名称是E_DefterManagementPU,我的事务类型是J

  • 问题内容: 我在META-INF /文件夹中有一个persistence.xml: 在Java代码中,我从该persistence.xml创建实体管理器facotry 但是我只想动态更改jdbc url / user / password以进行测试,我的计划是将这些参数保存在配置文件中,并根据需要读取它们,所以有没有一种方法可以在我从持久性创建了objectmanagerfactory之后更新它们

  • 问题内容: 一个很长的问题,请忍受我。 我们将Spring + JPA用于Web应用程序。我的团队在讨论如何在注入的(基于泛型的东西对AppFuse中提供的线DAO,我们不使用过的注射某种原因)。我们正在使用“应用程序管理的持久性”。 反对注入a的论点是它太重了,因此不是必需的,这就是我们需要的。而且,由于Spring将为每个Web请求创建一个DAO的新实例(我对此表示怀疑),因此不会有任何并发​

  • 我是Spring Boot的新手,我想用Spring Boot制作一个rest Web服务。我需要使用Jpa/Hibernate在数据库中保存一些数据。当我用@Entity注释我的域模型类,并将应用程序作为Spring boot应用程序启动时(顺便说一下,我的应用程序类有一个@EntityScan()注释)我得到以下错误: 在类路径资源 [组织/Spring框架/启动/自动配置/orm/jpa/H