Я пытаюсь вызвать удаленный EJB-сервер на сервере профиля Liberty, следуя примеру Redbook (Руководство по профилю IBM WebSphere Application Server Liberty для разработчиков, 5.2.3. Разработка приложений с использованием удаленного EJB).
Все компилируется и развертывается без проблем, но во время выполнения выдает это сообщение об ошибке:
Error 404: javax.servlet.UnavailableException: SRVE0319E: For the [com.ibm.itso.ejbRemote.HelloRemoteServlet] servlet, com.ibm.itso.ejbRemote.HelloRemoteServlet servlet class was found, but a resource injection failure has occurred. CWNEN0030E: The server was unable to obtain an object instance for the java:comp/env/com.ibm.itso.ejbRemote.HelloRemoteServlet/helloRemoteBean reference. The exception message was: CWNEN1003E: The server was unable to find the java:global/ITSORemote/ITSORemoteEJB/HelloRemoteEJB!com.ibm.itso.ejbRemote.view.HelloRemoteEJBRemote binding with the com.ibm.itso.ejbRemote.view.HelloRemoteEJBRemote type for the java:comp/env/com.ibm.itso.ejbRemote.HelloRemoteServlet/helloRemoteBean reference.
Что может быть не так? Пример локального EJB работает просто отлично.
Достаточно ли указать удаленный EJB только в клиентском коде или он должен быть где-то еще (файл свойств или server.xml)?
@EJB(lookup="java:global/ITSORemote/ITSORemoteEJB/HelloRemoteEJB!com.ibm.itso.ejbRemote.view.HelloRemoteEJBRemote")
private HelloRemoteEJBRemote helloRemoteBean;
Только интерфейс с аннотацией @Local является обязательным и отображается в журнале. Интерфейс с аннотацией @Remote не привязывается и не отображается в журнале.
В чем может быть ошибка?