Nu Echo Rivr 中的 EJB 或 CDI(VoiceXML Java 库)

EJB or CDI in Nu Echo Rivr (VoiceXML Java library)

我已经在 Rivr 对话框中尝试了无状态 EJB 的 CDI 注入和 @EJB 注入。他们不工作。 我还尝试通过全局 JNDI 名称对 EJB 进行 JNDI 查找,但出现以下错误(请注意,我使用的是 java:global,但我收到此消息):

无法完成对 java:comp/env 名称的 JNDI 操作,因为当前线程未与 Java 企业版应用程序组件相关联。当使用 java:comp/env 名称的 JNDI 客户端没有出现在服务器应用程序请求的线程上时,就会出现这种情况。确保 Java EE 应用程序不会 运行 JNDI 操作对 java:comp/env 静态代码块或该应用程序创建的线程中的名称进行操作。此类代码不一定 运行 在服务器应用程序请求的线程上,因此不受 java:comp/env 名称上的 JNDI 操作支持。

我是否可以在 Rivr 对话框中注入或定位 CDI @Named 或 EJB?

谢谢 伊格纳西奥

我检查了 Rivr cookbook 中的 Spring 示例,发现 DialogFactories 在 ServletThread 中执行。这使我能够使用全局 JNDI 名称成功执行标准 JNDI 查找,并将 EJB 传递给正在创建的对话框。

Rivr 团队通过电子邮件确认了这一点,我现在可以通过这种方式成功访问 EJB。

我无法执行标准的@Inject 或@EJB 注入,但 JNDI "traditional" 解决方案对我有用。