2013-12-16 53 views
1

可以将无状态会话bean注入到jsf托管bean中吗?注入无状态到ManagedBean

@ManagedBean(name = "imageUpload") 
@RequestScoped 
public class ImageUploadBean extends FileUploadBean { 

    @EJB 
    GenericEntityService genericEntityService; 

    ... 
} 


public interface GenericEntityService { 

    <T> T getById(int id, Class<T> entityClass); 

    void deleteById(int id, Class entityClass); 
} 


@Stateless 
public class GenericEntityServiceImpl 
     extends EntityServiceBase implements GenericEntityService 
{ 
... 
} 

genericEntityService总是空的,我不知道为什么

我使用tomee-webprofile-1.5.2

任何帮助或链接,例如,将不胜感激

+0

你看到任何NullPointerException异常? – Ashish

+0

您可以尝试通过将GenericEntityService设置为'@ManagedProperty(value =“#{NameOfYourStatelessBean}”)'而不是'@ EJB'来注入bean - 此方法允许注入f.e.将会话bean管理为具有更严格焦点的bean,如请求范围。但我想这需要使用@ManagedBean(name =“NameOfYourStatelessBean”)注释你的无状态类。至少我记得在几年前的大学课程中遇到了类似的问题(https://github.com/RovoMe/University/tree/master/DST_2011_SS_Assignment_3/1_jsf/web/src/dst3/ejb/jfs) –

+0

@Ashish不,它只是没有通过注入机制初始化 – Lostboy

回答

0

更新:这个答案很有用,因为默认界面是@Local

AFAIR这可能是怎么一回事,因为你需要在指定的接口进行本地或远程注释尝试:

@Local 
public interface GenericEntityService { 

    <T> T getById(int id, Class<T> entityClass); 

    void deleteById(int id, Class entityClass); 
} 
+0

默认情况下,它将被视为“@ Local”。 –

+0

谢谢@LuiggiMendoza我有一种误解 –