2009-11-11 8 views
0
public void runTest() throws Exception { 
     InitialContext ctx = new InitialContext(); 
     ResourceManager bean = (ResourceManager) ctx.lookup("ejb/ResourceManagerJNDI"); 
     System.out.println(bean.DummyText()); 
} 

Bonjour. Donc j'essaye de créer une application EJB, et c'est le client de test pour cela. la recherche JNDI est réussie, mais lorsque vous appelez la méthode « dummyText », je reçois l'erreur suivante:Aide EJB requise

javax.ejb.EJBException: nested exception is: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
    java.rmi.RemoteException: nested exception is: javax.ejb.EJBException: nested exception is: javax.ejb.CreateException: Could not create stateless EJB; nested exception is: 
    javax.ejb.EJBException: nested exception is: javax.ejb.CreateException: Could not create stateless EJB (...) 

Voici comment la classe de haricot ressemble:

@Stateless(name="ResourceManager", mappedName="ejb/ResourceManagerJNDI") 
@Remote 
@Local 
public class ResourceManagerBean implements ResourceManager 
{ 
    @EJB 
    private AccessDAO accessDAO; 
    @EJB 
    private ResourceDAO resourceDAO; 
    @EJB 
    private DepartmentDAO departmentDAO; 

    (list of methods) 
} 

Tous les conseils seront grandement appréciés. Je vous remercie.

Répondre

1

Voici mes premières pensées. Vous devriez avoir quelque chose comme

@Remote 
public interface ResourceManagerSessionRemote { 

    (list of methods) 

} 

Cassez vos interfaces locales et distantes sur

@Stateless(name="ResourceManager", mappedName="ejb/ResourceManagerJNDI") 
public class ResourceManagerBean implements ResourceManagerSessionRemote 
{ 
    @EJB 
    private AccessDAO accessDAO; 
    @EJB 
    private ResourceDAO resourceDAO; 
    @EJB 
    private DepartmentDAO departmentDAO; 

    (list of methods) 
}