Maven 为什么我不能把耳朵放在玻璃鱼上

Maven 为什么我不能把耳朵放在玻璃鱼上,maven,dependency-injection,java-ee-6,glassfish-3,cdi,Maven,Dependency Injection,Java Ee 6,Glassfish 3,Cdi,我在netbeans(netbeans的企业应用程序)中有标准的maven项目,它有1个war、1个ejb和1个ear模块。我想使用@InjectMy@无状态从ejb注入到war(REST类),使用其接口。我已经在project中的正确文件夹中添加了一些beans.xml文件,但我仍然得到以下信息: 部署期间发生错误:加载应用程序时出现异常:WELD-001409类型[LogicBean]的不明确依赖项,在注入点[[field]@Inject private pl.edu.amu.wmi.kin

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

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

我做错了什么?我搜索了整个互联网,但找不到解决方案。
我知道这是可能的,因为我与这样一位工作人员一起参与了一个项目。THX需要任何帮助:)

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


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

发布相关代码。试图帮助解决此类问题就像修理戴着烤箱手套的手表。我不知道我是否理解,但接口没有两个实现,只有一个!错误不是这样说的。一个是pl.edu、 amu.wmi.kino.rk.data.impl.LogicBeanImpl和另一个也是pl.edu.amu.wmi.kino.rk.data.impl.LogicBeanImpl。该类在其中的某个地方有两次。Oki,很抱歉,这些bean有两次(在ear/lib和war/lib中),因为在war中依赖ejb。我刚刚删除了ear并最终部署了war。