首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法在托管bean中使用会话ejb,因为我得到了一个Null指针异常

无法在托管bean中使用会话ejb,因为我得到了一个Null指针异常
EN

Stack Overflow用户
提问于 2016-06-20 19:15:23
回答 2查看 226关注 0票数 0

首先,我想说,我在使用ejb和jsf编程方面非常新,我正在尝试完成一个由我的一个朋友启动的项目。

我得到了一个NullPointerException,它是由调用名为utenteSessionBean的会话bean对象的方法utenteSessionBean.CheckUtentebyId(username)引起的,该方法在名为Neo4jMBean的托管bean中声明。

我了解到,没有必要在托管bean中创建和初始化会话bean (您必须使用普通的java对象),但是声明它就足够了。

下面是会话bean的代码,它从DB检索数据

代码语言:javascript
运行
复制
@Stateless 
@LocalBean 
public class UtenteSessionBean {

EntityManagerFactory emf = Persistence.createEntityManagerFactory("EnterpriseApplication2-ejbPU");

public boolean CheckUtentebyId(String username){
    EntityManager em = emf.createEntityManager();
    Query query = em.createNamedQuery("Utente.findByUsername");
    query.setParameter("username", username);
    List<Utente> Res=query.getResultList();
    //completare funzione ctrl+spazio
    System.out.println("pre");
    System.out.println("pre"+Res.isEmpty());
    em.close();
    System.out.println("post");
    System.out.println("post"+Res.isEmpty());
    if(Res.size()>=1)
    {
        return true;
    }
    else
    {
        return false;
    }

}
}

以下是托管bean的代码:

代码语言:javascript
运行
复制
@ManagedBean 
@ViewScoped
public class Neo4jMBean {   

@EJB
private UtenteSessionBean utenteSessionBean;

static String SERVER_ROOT_URI = "http://localhost:7474/db/data/";

public Neo4jMBean() {
}

public boolean getUser(String username) {

    return utenteSessionBean.CheckUtentebyId(username);
}
}

我已经在StackOverFlow上搜索了很多次解决这个问题的方法,但是我还没有找到适合我的解决方案。

EN

回答 2

Stack Overflow用户

发布于 2016-10-04 23:02:28

我修正了使用JNDI访问EJB组件的问题。简而言之,如果我在托管bean方法中使用EJB,我需要添加下面的代码行:

代码语言:javascript
运行
复制
        InitialContext ic = new InitialContext();
        SessionBeanName = (SessionBeanClass) ic.lookup("java:global/NameOfTheApplication/NameOfTheEJBpackage/NameOfTheSessionBean");

它必须由一条try-catch语句代替。

票数 1
EN

Stack Overflow用户

发布于 2016-06-30 17:35:17

在您的beans.xml文件夹中创建空WEB-INF文件以启用CDI

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37930151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档