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

IllegalStateException无法检索unitName null的EntityManagerFactory

卢光誉
2023-03-14

在用GlassFish 4.1、JSF2和JPA2构建的J2EE应用程序中按下一个按钮,调用EJB层中的@applicationscopedbean时,堆栈跟踪会显示,原因是:java.lang.IllegalStateException:无法检索unitName Null。其他的调用似乎很好,跟踪发生在这个特定的case/button中。
如果在post构造中执行对实体管理器的调用,则不会发生堆栈跟踪。

@PostConstruct
public void init() {
    entityManager.getCriteriaBuilder();
}

下面是完整的堆栈跟踪:

为什么会出现这种情况,我该如何摆脱它?

共有1个答案

黎奇略
2023-03-14

您必须为您的实体命名Manager。首先,您必须在元INF中放置一个persistance.xml,并为您的persistance-unit分配一个名称。

<?xml version="1.0" encoding="UTF-8"?>
<persistence
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        version="2.1"
        xmlns="http://xmlns.jcp.org/xml/ns/persistence"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
    <persistence-unit name="myUnit" transaction-type="JTA" />
</persistence>

之后,您必须像这样注入EntityManager。

@PersistenceContext(unitName = "myUnit")
EntityManager entityManager;

那应该能解决你的问题了。

 类似资料:
  • 问题内容: MVC4 +实体框架4.4 + MySql + POCO /代码优先 我正在设置以上配置..这是我的课程: 这是我的web.config设置… 数据库AND表已经存在… 我对mvc还是很陌生,但是正在使用本教程 应用程序构建良好…但是,当我尝试使用Product(BTD.Data)作为我的模型类并使用BTDContext(BTD.DataContext)作为我的数据上下文类添加控制器时

  • 脚本: 超文本标记语言: 我试图获取的文本与帐单地址相同。我也尝试过使用getText(),但没有返回任何结果。

  • 我认为这是一个极其简单的问题,但我所有解决它的尝试都失败了。 简而言之:我有一个JSP文件,其中的表单调用Java Servlet。servlet处理输入并返回一个变量(属性),然后重定向回同一个jsp。我想让jsp使用JavaScript而不是scriptlet来处理返回的属性。 JSP代码(test.jsp): 以及Servlet代码: 我认为问题源于我对会话变量的声明: 我也尝试过: 以及:

  • 我正在使用和版本27,在上一个版本中,我为我的项目使用了新的字体资源功能,但一天后,这行代码出现了3次崩溃 崩溃报告说这是因为android。所容纳之物无法检索res.Resources$NotFoundException和字体资源。所有3次崩溃都发生在android版本为5.1.1的用户身上。这是支持库中的错误还是我做错了什么?

  • 我正在运行kubernetes v1.6.11-gke。GKE上的0群集。在集群中,heapster-v1.3.0(gcr.io/google\u containers/heapster-amd64:v1.3.0)pod正在运行。 但是,当尝试通过REST API检索heapster指标时,似乎存在一个问题,如下所示: 和 此外,库贝-dns似乎也无法访问 使用kubectl cluster in

  • 我正在学习ReactJS,并试图在https://raw.githubusercontent.com/kirupa/kirupa/master/reactjs/helloworld_batman.htm运行代码(这来自https://www.kirupa.com/react/building_your_first_react_app.htm的说明)。 使用Chrome时,不会显示“蝙蝠侠”,Chr