0

我有一个简单的 Web 应用程序,打包为 EAR,部署在 Glassfish 上。EAR 有一个 Web 模块和一个 EJB 模块。Web 模块有一个面孔页面和一个 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?

4

1 回答 1

0

尝试进行 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);
 }
}

StudentProfileFacadeInt.的本地干扰在哪里StudentProfileFacade

于 2009-08-14T12:17:26.333 回答