我按照Weld documentation的描述配置了Jetty 9.2.5 + Weld 2.2.7(目前是最新版本)。
除了JNDI查找BeanManager之外,一切正常。查找其他JNDI条目只是按预期工作。我收到了错误(请注意,这不是javax.naming.NameNotFoundException
)
javax.naming.NamingException: WELD-001300: Unable to locate BeanManager
我使用的代码:
BeanManager beanManager = null;
try {
final Context ctx = new InitialContext();
try {
// JNDI name defined by spec
beanManager = (BeanManager) ctx.lookup("java:comp/BeanManager");
} catch (NameNotFoundException nf1) {
try {
// JNDI name used by Tomcat and Jetty
beanManager = (BeanManager) ctx.lookup("java:comp/env/BeanManager");
} catch (NameNotFoundException nf2) {
}
}
} catch (NamingException ex) {
System.err.println(ex);
}
return beanManager;
可以在https://github.com/rmuller/java8-examples/tree/master/jetty-maven-cdi
找到完整的测试代码答案 0 :(得分:0)
这与我遇到Tomcat 7/8和Weld 2.2.6的问题有类似的症状。就我而言,它与WELD中的一个错误有关,该错误已在2.2.7中修复。所以它不应该影响原始海报的设置。