我在Rivr对话框中尝试过CDI注入和@EJB注入无状态EJB。它们不起作用。我也尝试过通过Global名称查找EJB,但是我得到了以下错误(请注意,我使用的是java:global,但我得到了以下消息):
无法完成java:comp/env名称上的JNDI操作,因为当前线程与应用程序组件没有关联。当使用java:comp/env名称的JNDI客户端没有出现在服务器应用程序请求的线程上时,就会出现这种情况。确保Java应用程序在静态代码块中或在由该应用程序创建的线程中不运行java:comp/env名称上的JNDI操作。这样的代码不一定运行在服务器应用程序请求的线程上,因此java:comp/env名称上的JNDI操作不支持这种代码。
我是否可以在Rivr对话框中注入或定位CDI @Named或EJB?
谢谢伊格纳西奥
发布于 2015-09-19 16:42:16
我研究了Rivr食谱中的Spring示例,发现DialogFactories是在ServletThread中执行的。这允许我成功地使用Global名称执行标准的JNDI查找,并将EJB传递给正在创建的对话框。
Rivr团队通过电子邮件确认了这一点,我现在正以这种方式成功地访问EJB。
我无法执行标准@Inject或@EJB注入,但JNDI“传统”解决方案对我有效。
https://stackoverflow.com/questions/32612835
复制相似问题