0

我在 netbeans(netbeans 的企业应用程序)中有标准的 maven 项目,它有 1 个 war、1 个 ejb 和 1 个 ear 模块。我想使用@Inject 将我的@Stateless 从ejb 注入到war(REST 类)中,使用它的接口。我已经在项目中正确文件夹中添加了一些beans.xml文件,但是我仍然得到这个:

部署期间发生错误:加载应用程序时出现异常:WELD-001409 在注入点 [[field] @Inject private pl.edu.amu.wmi.kino.rk.rest 带有限定符 [@Default] 的类型 [LogicBean] 的不明确依赖项.ReportRest.bean]。可能的依赖项 [[会话 bean [class pl.edu.amu.wmi.kino.rk.data.impl.LogicBeanImpl 与限定符 [@Any @Default]; 本地接口是 [LogicBean],会话 bean [class pl.edu.amu.wmi.kino.rk.data.impl.LogicBeanImpl 带有限定符 [@Any @Default];本地接口是 [LogicBean]]]。有关详细信息,请参阅 server.log。

我究竟做错了什么?我已经搜索了整个互联网,但找不到解决方案。我知道这是可能的,因为我和这样的员工一起参与了一个项目。感谢您的帮助:)

4

1 回答 1

1

您正在对接口进行编码,这很好,但是您有两个具有相同限定符的接口实现(在这种情况下是默认的)。如果不使用限定符来消除您想要注入的内容的歧义,CDI 不知道该给您哪个。

我建议创建一个 @Rest 限定符(或 EJB 限定符)并注释类,并使用您想要的实例注释注入点。

于 2012-11-16T06:29:24.273 回答