Поиск бина @SessionScoped с использованием java .naming.Context - PullRequest
0 голосов
/ 26 апреля 2020

Я пытаюсь запустить некоторые юнит-тесты, используя встроенную версию Glassfi sh. Большинство моих тестов в порядке, но я не могу заставить работать мой компонент @SessionScoped. Я делаю следующую настройку:

 ejbContainer = EJBContainer.createEJBContainer(properties);
    System.out.println("Opening the container" );
    ctx = ejbContainer.getContext();

И это тест:

RequestBean requestBean = (RequestBean) ctx.lookup("java:global/classes/RequestBean");
    assertNotNull(requestBean);

    OrderMonitorBean monitorBean = (OrderMonitorBean) ctx.lookup("java:global/classes/OrderMonitorBean");
    assertNotNull(monitorBean);

    LoginRequest loginRequest = (LoginRequest) ctx.lookup("java:global/classes/LoginRequest");
    assertNotNull(loginRequest);

    OrderBookManager obm = (OrderBookManager) ctx.lookup("java:global/classes/OrderBookManager");
    assertNotNull(obm);

Однако, хотя все компоненты находятся в одном месте, OrderBookManager не найден, я получаю следующая ошибка:

javax.naming.NamingException: Lookup failed for 'java:global/classes/OrderBookManager' in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.url.pkgs=com.sun.enterprise.naming, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl}

Фактический тест не удался по другой причине:

Caused by: org.jboss.weld.contexts.ContextNotActiveException: WELD-001303: No active contexts for scope type javax.enterprise.context.SessionScoped

Вот почему я сейчас проверяю, что компонент SessionScoped существует в контексте, так как мне было интересно, эти проблемы были связаны.

Так что мой путь к бину SessionScoped неправильный? Я не уверен, что это должно быть или почему это терпит неудачу.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...