EJB или CDI в Nu Echo Rivr (библиотека VoiceXML Java)

Я пробовал инъекцию CDI и инжекцию @EJB EJB без сохранения состояния в диалоге Rivr. Они не работают Я также пробовал JNDI-поиск EJB через глобальное имя JNDI, но я получаю следующую ошибку (обратите внимание, что я использую java:global, но я получаю это сообщение):

Операция JNDI над именем java:comp/env не может быть завершена, поскольку текущий поток не связан с компонентом приложения Java Enterprise Edition. Это может произойти, если клиент JNDI, использующий имя java:comp/env, не появляется в потоке запроса приложения сервера. Убедитесь, что приложение Java EE не выполняет операции JNDI с именами java:comp/env в статических блоках кода или в потоках, созданных этим приложением. Такой код не обязательно выполняется в потоке запроса серверного приложения и поэтому не поддерживается операциями JNDI с именами java:comp/env.

В любом случае я могу ввести или найти CDI @Named или EJB в диалоге Rivr?

спасибо Игнасио

1 ответ

Решение

Я рассмотрел пример Spring в кулинарной книге Rivr и обнаружил, что DialogFactories выполняются в ServletThread. Это позволило мне успешно выполнить стандартный поиск JNDI с использованием глобального имени JNDI и передать EJB в создаваемый диалог.

Команда Rivr подтвердила это по электронной почте, и теперь я успешно получаю доступ к EJB.

Я не мог выполнить стандартные инъекции @Inject или @EJB, но "традиционное" решение JNDI сработало для меня.

Другие вопросы по тегам