@从EJB项目中注入bean会提供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. 一种是包装类型大战,在/ 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中运行它,因此它将使用JEE6。
但是,当我尝试@Inject Banana cdiBananaMonkey该类中运行时,它会失败。
它给出了信息

javax.enterprise.inject.UnsatisfiedResolutionException:找不到带有限定
词的Api类型[org.food.Banana]限定词:[@ javax.enterprise.inject.Default()]

当我制作Banana一个@StatelessEJB,并给它Monkey一个@EJB Banana ejbBanana工作。

为什么不起作用?我应该怎么做或设法使其起作用?

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

与加德拉

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

  • 自由运行此文件(JEE7),效果很好。
  • 在Wildfly(JEE7)中运行正常
  • 在JBoss(JEE6)中运行失败
  • 在WAS 8.5(JEE6)中运行失败。

显然,@ Inject从另一个Ejb-jar中注入一个bean给容器带来了问题。当您使用@EJB时,它可以正常工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章