Java 码头+;泽西servlet+;焊接:焊接注入未初始化,有什么问题?
我正试图从Glassfish+Jersey+Weld迁移到Jetty 我有这样的设置: 应用程序似乎启动良好,但在处理任何请求时,我看到应该由Weld(Java 码头+;泽西servlet+;焊接:焊接注入未初始化,有什么问题?,java,jetty,jersey,jboss-weld,Java,Jetty,Jersey,Jboss Weld,我正试图从Glassfish+Jersey+Weld迁移到Jetty 我有这样的设置: 应用程序似乎启动良好,但在处理任何请求时,我看到应该由Weld(logger)注入的字段为空 有什么问题 更新:Logger producer看起来可疑,但它甚至没有被调用: /** This class uses CDI to alias Java EE resources into CDI beans. **/ public class Resources { @Produces pub
logger
)注入的字段为空
有什么问题
更新:Logger producer看起来可疑,但它甚至没有被调用:
/** This class uses CDI to alias Java EE resources into CDI beans. **/
public class Resources {
@Produces
public Logger produceLog(InjectionPoint injectionPoint) {
return LoggerFactory.getLogger(
injectionPoint.getMember().getDeclaringClass().getName());
}
}
嗨,维克托,我的回答是我要求的,我已经和嵌入式jetty讨论过这个问题。我还推出了一个完全可以工作的示例,您可以克隆它 我看不出你的要点有什么错,不过你能给我看看你的记录器制作人吗 更新: 我在你的代码中看到一个输入错误“BeanMnanager”,但不确定这是否是原因
new Resource("BeanManager", new Reference("javax.enterprise.inject.spi.BeanMnanager",
"org.jboss.weld.resources.ManagerObjectFactory", null));
我只是想知道为什么第2部分中有
AppServlet
。它不应该只与Jersey servlet一起工作吗?这看起来不太干净。顺便说一句,你可以使用com.sun.jersey.config.property.packages
而不使用RestConfig.getClasses()
@VictorSergienko AppServlet只是在Jetty启动后展示一个CDI入口点,如果你想进行任何开机后配置或其他操作,它根本不是必需的。至于RestConfig,我不确定。。。
new Resource("BeanManager", new Reference("javax.enterprise.inject.spi.BeanMnanager",
"org.jboss.weld.resources.ManagerObjectFactory", null));