Удаленная привязка EJB не отображается в журнале - Websphere Liberty

Я пытаюсь вызвать удаленный EJB на сервере Liberty Profile, следуя примеру Redbook (Руководство по профилю Liberty Profile IBM WebSphere Application Server для разработчиков, 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 не привязывается и не отображается в журнале.

В чем может быть ошибка?


person Nikeshh Baskaran    schedule 21.03.2019    source источник
comment
У вас есть доступ к консоли администратора websphere? если это так, вы можете проверить правильность привязок EJB в Applications › Application Types › WebSphere Enterprise application › application_name › EJB references в административной консоли   -  person Benjamin Caure    schedule 21.03.2019
comment
В Websphere Liberty таких опций нет   -  person Nikeshh Baskaran    schedule 21.03.2019


Ответы (2)


В этом процедура, в конце указывается настроить ibm-*-bnd.xml из вашего приложения:

<ejb-ref name="helloRemoteBean" binding-name="java:global/ITSORemote/ITSORemoteEJB/HelloRemoteEJB!com.ibm.itso.ejbRemote.view.HelloRemoteEJBRemote"/>
person Benjamin Caure    schedule 21.03.2019

Если интерфейс @Remote не привязан, то server.xml либо не включает функцию ejbRemote-3.2, либо отсутствует конфигурация для ORB (т. е. функция ejbRemote не запустится, если ORB не запускается должным образом. Например, ваш server.xml содержит как минимум что-то вроде следующего:

<server>
    <featureManager>
        <feature>ejbRemote-3.2</feature>
    </featureManager>

    <iiopEndpoint id="defaultIiopEndpoint" iiopPort="2809" iiopsPort="2810"/>
</server>
person Tracy    schedule 21.03.2019