我正在尝试在 Weblogic 10.3 上运行基于 Weld、JPA2、Vaadin 的应用程序。
我的问题是 Weld 似乎注册了所有 Bean,但它们没有注入(inject)到我的 servlet 中。
以下日志消息可疑:
1433 [[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)'] INFO org.jboss.weld.environment.gwtdev.GwtDevHostedModeContainer - Jetty detected, JSR-299 injection will be available in Servlets and Filters. Injection into Listeners is not supported.
30.08.2012 16:09:20 org.jboss.weld.environment.jetty.MortbayWeldServletHandler process
INFO: Cannot find matching WebApplicationContext, no default CDI support: use jetty-web.xml
基本上我关注了这个博客:http://jianmingli.com/wp/?p=4373用于 Weld 集成。
可能我需要根据http://docs.jboss.org/weld/reference/1.0.0/en-US/html/environments.html#d0e5036配置beanmanager但我不知道该怎么做。
有人有什么想法吗?
/亲切的问候
最佳答案
您是否按照教程中的语音步骤执行了这些步骤?
- 您必须将 beans.xml 放在 src/META-INF 中。放在WEB-INF 里是不行的。
- 您必须在 WEB-INF 目录中创建 weblogic.xml 并将 wls:prefer-web-inf-classes 设置为 true。否则,WEB-INF/lib jar 文件将无法正确加载。
Weblogic是一个有线应用程序服务器!我使用的是 12.1.1 版本,并且 CDI 有很多问题!
如果阅读该教程是出于学习目的,我建议不要使用 Weblogic,而是使用 jBoss AS 的 Glassfish。
JBoss developer framework在这个范围内有许多很棒的示例和教程。
关于java - Weblogic 10.3.6 上的 Weld ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12198939/