Платформа: JBoss AS 7.1.1.@Inject не работает EJB называет свой метод
У меня есть фасонный метод, который должен вызвать другой метод одного и того же компонента, но должен пройти через контейнер EJB.
@Stateless
public class OrderManager {
@Resource
SessionContext ctx;
@Inject
MailUtil mm;
Logger logger = Logger.getLogger("Test");
public void method1() {
if (mm == null) {
logger.info("MailUtil is null");
}
ctx.getBusinessObject(OrderManager.class).method2();
}
@Asynchronous
public void method2() {
if (mm == null) {
logger.info("MailUtil is null");
}
}
}
К сожалению, введенная переменная mm равна нулю в методе2(). Хотя внутри метода1() существует правильно введенная переменная mm.
Является ли это дефектом в JBOss, или я делаю что-то неправильно? Благодарю.
Вы пытались впрыснуть объект непосредственно вместо использования SessionContext.getBusinessObject? –
Да, я попробовал инъекцию с помощью @EJB. Тот же результат. – RajV
Май [этот вопрос и его ответы] (http://stackoverflow.com/questions/12198983/ejb-asynchronous-does-not-work-in-same-class) help. –