Нужна помощь EJB - PullRequest
       13

Нужна помощь EJB

0 голосов
/ 11 ноября 2009
public void runTest() throws Exception {
        InitialContext ctx = new InitialContext();
        ResourceManager bean = (ResourceManager) ctx.lookup("ejb/ResourceManagerJNDI");
        System.out.println(bean.DummyText());
}

Hello. Поэтому я пытаюсь создать приложение EJB, и это тестовый клиент для него. поиск JNDI успешен, но при вызове метода «DummyText» я получаю следующую ошибку:

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 (...)

Вот так выглядит класс бина:

@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)
}

Любой совет будет с благодарностью. Спасибо.

1 Ответ

1 голос
/ 12 ноября 2009

Вот мои первые мысли. Вы должны иметь что-то вроде

@Remote
public interface ResourceManagerSessionRemote {

    (list of methods)

}

Разбейте свой удаленный и локальный интерфейсы

@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)
}
...