我想将 WAR 部署到 Jetty 8。WAR 包含一个简单的 servlet,该 servlet 通过 CDI (Weld) 将依赖项注入其中。
我在网上找到的所有示例/问题似乎都只涉及嵌入式 Jetty - 仅将 Jetty 用作外部 servlet 容器无关紧要。
我已经根据我对这些部分如何组合在一起的最佳知识进行了所有设置,但注入似乎没有发生,即使系统说一切都可以注入。
我的 META-INF 中有一个裸beans.xml。
我的 pom.xml、jetty-context.xml + jetty-env(在我的 WEB-INF 中)、servlet、injectee 实现 + 实现:
部署战争后,最初一切似乎都很好:
Mar 08, 2013 3:38:42 PM org.jboss.weld.bootstrap.WeldBootstrap <clinit>
INFO: WELD-000900 1.1.10 (Final)
Mar 08, 2013 3:38:42 PM org.jboss.weld.bootstrap.WeldBootstrap startContainer
INFO: WELD-000101 Transactional services not available. Injection of @Inject Use
rTransaction not available. Transactional observers will be invoked synchronousl
y.
Mar 08, 2013 3:38:42 PM org.jboss.weld.environment.jetty.JettyPost72Container in
itialize
INFO: Jetty7 detected, JSR-299 injection will be available in Listeners, Servlet
s and Filters.
init init init init init init init init init init init init init init init!!!!!!
!!!!!!!!!!!!!!
...然后,当它尝试访问 servlet 第 41 行上的被注入者时,我得到一个空指针。
我错过了一些明显的东西吗?Weld 告诉我一切都对 CDI 有利。但那里什么也没有。
编辑:我也尝试过与 Jetty 7.6.9.v20130131 对齐的所有内容(根据文档,Weld 支持)
干杯,感谢您提供的任何见解。