Jboss EAP Асинхронный метод не работает - PullRequest
0 голосов
/ 22 ноября 2018

Я перепробовал все ресурсы в Интернете, но асинхронная аннотация Jboss не работает.Ниже приведен класс, откуда я пытаюсь вызвать тестер,

@Stateless
public abstract class TestApplicationBean extends OtherTest implements ESession{
    @Inject
    AsyncBeanTester tester;

    void process() {
        tester.test();
    }

}

Вот класс тестера

@Stateless
public class AsyncBeanTester {
    @Inject
    SFAsyncRemote asyncRemote;

    void test() {

        asyncRemote.test();
    }



}

И интерфейс,

@Remote
public interface SFAsyncRemote {
    void test();
}

Инаконец, асинхронная реализация,

@LocalBean
@Stateless
@TransactionAttribute(TransactionAttributeType.NEVER)
public class ImplAsyncBean implements SFAsyncRemote {

    private static final ELogger log = ELoggerFactory.getLogger(ImplAsyncBean.class);

    @Override
    @Asynchronous
    public void test() {
       try {
            Thread.sleep(10000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println("It works");
   }

}

Кажется, что асинхронная аннотация не имеет никакого эффекта.Однако я звоню через прокси-сервер Jboss, поэтому Jboss должен был выполнить функцию асинхронно.Однако идентификатор потока одинаков, и вся программа ждет 10 секунд, прежде чем перейти к завершению.Что я здесь не так делаю?Более того, когда я пытаюсь использовать @EJB вместо @Inject на asyncRemote, я получаю Could not resolve @EJB injection for @javax.ejb.EJB(name=, lookup=, description=, beanName=, beanInterface=class java.lang.Object, mappedName=) on com.bankframe.bp.retail.solutionset.impl.maintainculsfapplication.SFAsyncRemote com.bankframe.bp.retail.solutionset.impl.maintainculsfapplication.AsyncBeanTester.asyncRemote

...