Java 在@products方法中获取bean类名的NullPointerException

Java 在@products方法中获取bean类名的NullPointerException,java,jakarta-ee,logback,slf4j,java-ee-8,Java,Jakarta Ee,Logback,Slf4j,Java Ee 8,我有一个LoggerProducer类,它被注入到@Stateless bean中以生成日志条目,如前所述 问题是,当调用CustomerBean时,甚至没有调用logger.info,@products方法检索bean类名,但会失败,出现NullPointerException。这个代码有什么问题 @Named @Singleton public class LoggerProducer { @Produces public Logger produceLogger(Inje

我有一个LoggerProducer类,它被注入到@Stateless bean中以生成日志条目,如前所述

问题是,当调用CustomerBean时,甚至没有调用logger.info,@products方法检索bean类名,但会失败,出现NullPointerException。这个代码有什么问题

@Named
@Singleton
public class LoggerProducer {

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

}
假设injectionPoint在producer方法中不为null,您可以尝试以下方法:

@Produces 
Logger createLogger(InjectionPoint injectionPoint) { 
    return LoggerFactory.getLogger( injectionPoint.getMember().getDeclaringClass().getName() );
}
假设injectionPoint在producer方法中不为null,您可以尝试以下方法:

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

什么是null:injectionPoint或getBean?getBean是null什么是null:injectionPoint或getBean?getBean是null