为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

GCT1015 2022-05-12 15:46:04
我有这个LoggerProducer类,它被注入到一个@Statelessbean 中以生成日志条目,如此处所述。问题是当CustomerBean被调用(甚至没有调用logger.info)时,@Produces方法(检索 bean 类名)以NullPointerException. 这段代码有什么问题?@Named@Singletonpublic class LoggerProducer {    @Produces    public Logger produceLogger(InjectionPoint injectionPoint) {        return LoggerFactory.getLogger(                   injectionPoint.getBean().getBeanClass()); // <- error here    }   }注入记录器的bean:import org.slf4j.Logger;@Stateless@LocalBean@Namedpublic class CustomerBean  {    @Inject    private Logger logger;    ......      logger.info("some message");
查看完整描述

1 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

假设它injectionPoint不为空(在你的生产者方法中),你可以试试这个:


@Produces 

Logger createLogger(InjectionPoint injectionPoint) { 

    return LoggerFactory.getLogger( injectionPoint.getMember().getDeclaringClass().getName() );

}


查看完整回答
反对 回复 2022-05-12
  • 1 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信