我有@Local接口和@Stateless实现。
实现是@Resource(mappedName =“java:/ XXMail”)javax.mail.Session。
虽然它仍然是null并且没有注入,但是通过InitialContext进行的JNDI查找工作正常。
任何想法我可以检查或如何调试这个?我们中的几个人已经倾倒了一段时间而没有任何运气。道歉,我无法在封闭的网络上发布代码本身。
答案 0 :(得分:0)
虽然这个问题可能不再相关,但根本问题及其解决方案可能对其他人有价值。在大多数情况下,问题是由实例化实现bean的新对象而不是使用代理接口引起的,例如:
ObjectBean obj = new ObjectBean();
这不会触发CDI,因此所有带注释的资源都将 null 。通过查找JNDI或带注释的资源来使用界面将解决问题:
ObjectBeanInterface obj = new InitialContext().lookup("java:module/ObjectBean!org.mycompany.ObjectBeanInterface");