gpt4 book ai didi

java - 使用 Wicket/JPA 注入(inject)实体管理器时出错

转载 作者:行者123 更新时间:2023-11-30 11:58:06 24 4
gpt4 key购买 nike

我有一个使用 Wicket 作为表示层的应用程序,在 GlassFish v3.0.1 上部署了 CDI/Weld、JPA 2.0、EJB 3.1 等 (Java EE 6)。

当我尝试使用@EJB 将 EJB 注入(inject) wicket 页面时,出现以下错误:java.lang.IllegalStateException:无法检索 unitName 的 EntityManagerFactory

当我尝试使用@Inject 注入(inject)时,出现以下错误:java.lang.IllegalStateException: 无法将 ejb UserRepository 的 ejbRef 转换为类类型的业务对象

我认为问题出在 JPA 上。我使用的配置与我在正常工作的 JSF 应用程序中使用的配置完全相同,所以我不知道问题出在哪里。连接池已正确设置并通过 GlassFish 正确执行 ping 操作,我在类路径中包含了 wicket-weld,我什至尝试将旧的 Java EE 5 wicketstuff 项目用于 wicketstuff-javaeeapi,结果相同。

如有任何帮助,我们将不胜感激。

最佳答案

如果你得到异常:

Unable to retrieve EntityManagerFactory for unitName

这可能意味着它没有检测到您的 persistence.xml 文件。确保它位于 WEB-INF\classes\META-INF 目录中。

您可以通过转到 GlassFish 中的管理控制台来验证您的应用程序是否启用了 JPA,转到“应用程序”部分并查看它是否显示类似 [ejb, web, weld, jpa] 的内容你的应用程序。如果它没有显示 jpa,那么它没有找到您的 JPA 配置文件。

关于java - 使用 Wicket/JPA 注入(inject)实体管理器时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3382551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com