Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 从FacesBackingBean调用EJB3_Jsf_Ejb 3.0 - Fatal编程技术网

Jsf 从FacesBackingBean调用EJB3

Jsf 从FacesBackingBean调用EJB3,jsf,ejb-3.0,Jsf,Ejb 3.0,我有一个简单的web应用程序,打包成EAR,部署在Glassfish上。 EAR有一个web模块和一个EJB模块。 web模块有一个faces页面和一个ManagedBean。 Faces页面上只有一个按钮,该按钮绑定到ManagedBean中的一个方法,单击该按钮确实会触发该方法 托管bean: public class Bar { public Bar() { } @EJB StudentProfileFacade f; public void hell

我有一个简单的web应用程序,打包成EAR,部署在Glassfish上。 EAR有一个web模块和一个EJB模块。 web模块有一个faces页面和一个ManagedBean。 Faces页面上只有一个按钮,该按钮绑定到ManagedBean中的一个方法,单击该按钮确实会触发该方法

托管bean:

public class Bar {

    public Bar() {
    }

    @EJB StudentProfileFacade f;

    public void hello(ActionEvent evt) {
        System.out.println("*** f: " + f);
    }
}
EJB没有被注入,我得到的错误是:

Exception attempting to inject Unresolved Ejb-Ref com.web.Bar/f@jndi: com.StudentProfileFacade@null@com.StudentProfileFacade@Session@null into class com.web.Bar

我需要做什么才能让web模块找到EJB模块以及其中的EJB?

尝试执行jndi查找而不是di。它可能看起来像:

private StudentProfileFacadeInt getStudentProfileFacade() {
 try {
  InitialContext ctx = new InitialContext();
  return (StudentProfileFacadeInt) ctx.lookup("<application_name>/StudentProfileFacade/local");
 } catch (Exception e) {
  e.printStackTrace();
  throw new RuntimeException("couldn't lookup StudentProfileFacade", e);
 }
}
private StudentProfileFacadeInt getStudentProfileFacade(){
试一试{
InitialContext ctx=新的InitialContext();
return(StudentProfileFacadeInt)ctx.lookup(“/studentprofilefacadein/local”);
}捕获(例外e){
e、 printStackTrace();
抛出新的RuntimeException(“无法查找StudentProfileFacade”,e);
}
}

其中,
StudentProfileFacadeInt
studentprofilefacadein
的本地接口,EJB是否分配了全局JNDI名称?