我如何注入这个类(它在项目的战争部分内):
@Named("user")
@SessionScoped
public class User implements Serializable
{....}
进入这个EJB会话bean:
@Stateless
@LocalBean
public class testSB
{ inject User here... }
我尝试使用@Inject
,但它不起作用。它似乎无法识别User
类。
我试图寻找一个将CDI注入EJB的示例,但找不到任何有用的东西。
这甚至可能吗?这样做的正确方法是什么?我想直接从User
类获取数据,而不是在方法中传递值。
答案 0 :(得分:1)
将Provider<User>
注入无状态bean。然后,当您需要用户时,请执行userProdiver.get()
。
答案 1 :(得分:0)
注意不要实例化“testSB”对象(这样你就不能指望容器向你注入“User”类的对象)。容器能够向你注入一个“User”类的对象,你必须让容器实例化类“testSB”的对象。
我不认为在“RequestBean”中注入“SessionBean”存在问题。所有“RequestBean”对象都将共享“SessionBean”类的相同对象。
答案 2 :(得分:0)
使用CDI,您应该能够在任何地方注入任何内容,即使在EJB SessionScoped中也是如此。
尝试将空beans.xml添加到META-INF。请在这里查看我的答案:
Java EE 7 - @Decorator, @Stateless and @PersistenceContext = nullpointerException
最诚挚的问候, 亚历山大