繁体   English   中英

@Inject一个来自EJB项目的bean给出了UnsatisfiedResolutionException

[英]@Inject a bean from an EJB project gives UnsatisfiedResolutionException

我有两个maven项目。

  1. 一种是打包类型ejb,包括/ META-INF中的beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"
>
  1. 一种是打包类型war,包括/ WEB-INF中的beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"
>
</beans>

然后将它们包装成单耳。

在我的ejb项目中,我有一个班级Banana ,在战争项目中,我有一个班级Monkey
然后我尝试在WAS 8.5中运行它,所以它将使用JEE 6
但是,当我在Monkey类中尝试@Inject Banana cdiBanana时,它失败了。
它给出了信息

javax.enterprise.inject.UnsatisfiedResolutionException:找不到限定符的Api类型[org.food.Banana]
资格赛:[@ javax.enterprise.inject.Default()]

当我把Banana变成一个@Stateless EJB,然后给Monkey一个@EJB Banana ejbBanana它就可以了。

为什么这不起作用? 我应该做什么或尝试使它工作?

也许与CDI有关:为什么在以下设置中存在不满意的依赖关系?

现在,我将结束这个问题。 看起来问题是JEE6规范。

  • 在自由中运行它(JEE7)它工作正常。
  • 在Wildfly(JEE7)中运行正常
  • 在JBoss(JEE6)中运行失败
  • 在WAS 8.5(JEE6)中运行失败。

显然,@ Inject一个来自另一个Ejb-jar的bean会给容器带来问题。 当你使用@EJB时它工作正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM