首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Wicket/JPA注入实体管理器时出错

使用Wicket/JPA注入实体管理器时出错
EN

Stack Overflow用户
提问于 2010-08-01 23:24:55
回答 2查看 1.2K关注 0票数 2

我有一个应用程序,它使用Wicket作为表示层,并在GlassFish v3.0.1上部署了CDI/Weld、JPA2.0、EJB3.1等(JavaEE6)。

当我尝试使用@EJB将EJB注入到wicket页面时,我得到了以下错误: java.lang.IllegalStateException: Unable to retrieve EntityManagerFactory for unitName

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

我认为问题源于JPA。我使用的配置与JSF应用程序使用的配置完全相同,但工作正常,因此我不知道问题可能是什么。连接池被正确地设置并通过GlassFish正确地using通,我已经在类路径中包含了wicket-weld,我甚至尝试使用旧的JavaEE5 wicketstuff项目来实现wicketstuff-javaeeapi,也得到了同样的结果。

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-03 03:35:04

如果你得到了异常:

无法检索unitName的EntityManagerFactory

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

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

票数 1
EN

Stack Overflow用户

发布于 2010-08-02 06:51:15

可以总是尝试通过其标准的"java:global“名称来查找EJB。这至少应该让您排除wicket作为问题的可能来源,并让您更接近工作系统。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3382551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档