2009-07-17 4 views
0

J'ai une application Web simple, emballée sous forme d'EAR, déployée sur Glassfish. L'EAR dispose d'un module Web et d'un module EJB. Le module Web a une page de faces et un ManagedBean. La page Faces ne comporte qu'un bouton et le bouton est lié à une méthode dans ManagedBean, et cliquer sur le bouton déclenche effectivement la méthode.Appel d'EJB3 à partir d'un BackingBean Faces

Le haricot géré:

public class Bar { 

    public Bar() { 
    } 

    @EJB StudentProfileFacade f; 

    public void hello(ActionEvent evt) { 
     System.out.println("*** f: " + f); 
    } 
} 

L'EJB ne reçoit pas injecté, l'erreur que je reçois est:

Exception attempting to inject Unresolved Ejb-Ref com.web.Bar/[email protected]: [email protected]@[email protected]@null into class com.web.Bar 

Que dois-je faire pour que le module Web se trouve le EJB module, et les EJB dans celui-ci?

+0

L'EJB a-t-il un nom JNDI global assigné? –

Répondre

0

essayez de faire jndi recherche au lieu de di. Il pourrait ressembler à:

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 est un interfejs local pour StudentProfileFacade.

Questions connexes