Java 码头+;泽西servlet+;焊接:焊接注入未初始化,有什么问题?

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

我正试图从Glassfish+Jersey+Weld迁移到Jetty

我有这样的设置:

应用程序似乎启动良好,但在处理任何请求时,我看到应该由Weld(
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));