У меня есть класс LoggerProducer
, который внедряется в bean-компонент @Stateless
для создания записей журнала, как объяснено здесь .
Проблема в том, что когда вызывается CustomerBean
(даже без вызова logger.info
), метод @Produces
(который получает имя класса компонента) завершается с NullPointerException
. Что не так с этим кодом?
@Named
@Singleton
public class LoggerProducer {
@Produces
public Logger produceLogger(InjectionPoint injectionPoint) {
return LoggerFactory.getLogger(
injectionPoint.getBean().getBeanClass()); // <- error here
}
}
Бин, который внедряет логгер:
import org.slf4j.Logger;
@Stateless
@LocalBean
@Named
public class CustomerBean {
@Inject
private Logger logger;
......
logger.info("some message");