0

我想使用 CDI 使用 Weblogic 10.3.6 中的生产者方法将对象注入 EJB 类。Weblogic 10.3.6 是一个 Java EE 5 容器,因此不支持开箱即用的 CDI。迁移到 Weblogic 12c(支持开箱即用的 CDI)将是一个我们现在无法承担的相当大的迁移项目。

是否可以将 Weld 或 OpenWebBeans 改装到 Weblogic 10.3.6?到目前为止,我一直试图让 OpenWebBeans 工作但没有成功。我在类路径中放置了以下 jar 文件:

openwebbeans-ee-1.2.6.jar
openwebbeans-ee-common-1.2.6.jar
openwebbeans-ejb-1.2.6.jar
openwebbeans-el10-1.2.6.jar
openwebbeans-el22-1.2.6.jar
openwebbeans-impl-1.2.6.jar
openwebbeans-jms-1.2.6.jar
openwebbeans-osgi-1.2.6.jar
openwebbeans-resource-1.2.6.jar
openwebbeans-spi-1.2.6.jar
openwebbeans-web-1.2.6.jar

我还在我的 EJB 项目中添加了一个 META-INF/openwebbeans/openwebbeans.properties 文件(传统的 EJB jar 打包在一个 .ear 文件中)。我修改/添加了以下内容:

org.apache.webbeans.spi.deployer.useEjbMetaDataDiscoveryService=true org.apache.webbeans.resource.spi.ResourceService=org.apache.webbeans.ejb.resource.OpenEjbResourceInjectionService

我还将以下示例破解到 EJB 类中以检查它是否有效: http ://www.javacodegeeks.com/2013/04/java-ee-cdi-producer-methods-tutorial.html

但是,应该注入的成员变量仍然为空。我在日志中看不到任何错误。

我开始觉得这只有在 EJB 类部署在定义了 OpenWebBeans 侦听器的 .war 文件中时才有效。我这样说对吗?

4

1 回答 1

1

很久以前,我试图让 Weld 在 Weblogic 10.3.6 中工作,但没有成功。我想,即使你能成功,它也会有问题。所以只要放松并使用 Guice 或 smth,就像 WL 10.3 中的那样

于 2014-09-01T19:14:36.653 回答