首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java 6生产者不工作

Java 6生产者不工作
EN

Stack Overflow用户
提问于 2017-09-19 10:39:47
回答 1查看 284关注 0票数 0

我使用JBoss作为7和Java 6。

我有这样一个伐木制作人..。

代码语言:javascript
复制
@Singleton
@Startup
public class LoggerProducer {

     private static Logger logger = Logger.getLogger(LoggerProducer.class.getName());

    @Produces
    public Logger produceLogger(final InjectionPoint injectionPoint) {  
        final String injectingClass = injectionPoint.getMember().getDeclaringClass().getName();
        return Logger.getLogger(injectingClass);  
    }  

}

在我的课上我注射如下..。

代码语言:javascript
复制
@Inject
Logger logger;

我在每种情况下都导入java util记录器。

代码语言:javascript
复制
import java.util.logging.Logger;

所有的部署都是正确的,但是记录器的注入失败了,如果我尝试使用注入的记录器,我将得到一个运行时NullPointer

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-19 16:45:50

感谢大家的回复。

我把beans.xml放在正确的位置(WEB)。它被打包成一个.war。

问题是我自己在类(Bean)中的编码错误,我正在将记录器注入其中。我错误地使用了一个constructor来初始化类,因此在CDI有机会注入之前,这个类试图使用记录器。

修复方法是用@PostConstruct方法替换构造函数,所有这些方法都运行良好。

代码语言:javascript
复制
@MyAnnotation
@Singleton
public class MtHammer implements Hammer {

    .....

    @Inject
    Logger logger2;


    @PostConstruct
    private void startup() {

        initialise();

    }

     private void initialise() {
            logger.info("logger...Initialising ...");
      ....
        }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46298316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档