gpt4 book ai didi

java - NullPointerException 在 @Produces 方法中获取 bean 类名

转载 作者:行者123 更新时间:2023-11-29 08:24:33 25 4
gpt4 key购买 nike

我有这个 LoggerProducer 类,它被注入(inject)到 @Stateless bean 中以生成日志条目,如所述 here .

问题是,当调用 CustomerBean 时(甚至没有调用 logger.info),@Produces 方法(检索 bean 类) name) 失败并出现 NullPointerException。这段代码有什么问题?

@Named
@Singleton
public class LoggerProducer {

@Produces
public Logger produceLogger(InjectionPoint injectionPoint) {
return LoggerFactory.getLogger(
injectionPoint.getBean().getBeanClass()); // <- error here
}

}

注入(inject)记录器的bean:

import org.slf4j.Logger;

@Stateless
@LocalBean
@Named
public class CustomerBean {

@Inject
private Logger logger;

......
logger.info("some message");

最佳答案

假设 injectionPoint 不为 null(在您的生产者方法中),您可以尝试以下操作:

@Produces 
Logger createLogger(InjectionPoint injectionPoint) {
return LoggerFactory.getLogger( injectionPoint.getMember().getDeclaringClass().getName() );
}

关于java - NullPointerException 在 @Produces 方法中获取 bean 类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54243769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com