我想使用CDI在Weblogic 10.3.6中使用producer方法将对象注入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 =真 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
但是,应该注入的成员变量保持为null。我没有在日志中看到任何错误。
我开始觉得只有将EJB类部署在定义了OpenWebBeans侦听器的.war文件中才能使用。我说的是对的吗?
答案 0 :(得分:1)
很久以前,我曾尝试让Weld在Weblogic 10.3.6中工作,但是没有成功。我想如果你能成功做到这一点,它就会越野车。所以请放松并使用Guice或smth,就像在WL 10.3中那样