Удаленные провайдеры EJB

Для приложений, предоставляющих удаленные объекты EJB, необходимо обеспечить доступ клиентов в среде заказчика к удаленным объектам EJB после миграции приложения.

Следующие классы и аннотации Java являются признаком использования удаленных объектов EJB:

Удаленные объекты EJB также указываются следующими элементами в файле ejb-jar.xml:


<session>
    <description>Мой бизнес-объект</description>
    <display-name>BusinessLogic bean</display-name>
    <ejb-name>BusinessLogic</ejb-name>  
	<home>com.ibm.ejbs.BusinessLogicHome</home>
	<remote>com.ibm.ejbs.BusinessLogic</remote>
    <ejb-class>com.ibm.ejbs.BusinessLogicSession</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>          
</session>

Приложения, содержащие этот код, предоставляют объекты EJB, которые доступны удаленно. Рекомендуется перенести обращающиеся к этим объектам EJB приложения в одну облачную среду с объектами, если это возможно. Также могут потребоваться решения для обеспечения связи, если к этим объектам EJB будут обращаться приложения-клиенты в среде заказчика.

Это правило проверяется один раз для каждого проекта Eclipse или архива Java.

Как исправить

Если клиентское приложение может напрямую обратиться к удаленному провайдеру EJB после его перемещения, то дополнительные действия не требуются.

В противном случае одно из решений - переместить провайдер EJB в облако вместо со всеми приложениями-клиентами, которые обращаются к удаленным объектам EJB. Также необходимо проверить связь приложений-клиентов на наличие неполадок. Другой вариант - использовать туннель VPN, например IBM Cloud Secure Gateway, для создания защищенного соединения между приложениями-клиентами в среде заказчика и этим удаленным провайдером EJB. Более подробные инструкции по настройке безопасного соединения см. в разделе Настройка VPN. После настройки шлюза подключите свое приложение к целевому узлу, указав облачные имя хоста и номер порта, заданные во время его создания. Пример удаленного URL EJB:

При настройке защищенного соединения для обращения к удаленным объектам EJB в облаке создайте и установите сервлет для туннелирования по HTTP на облачном сервере приложений и включите туннелирование в параметрах ORB на стороне клиента. См. раздел Включение туннелирования HTTP. Укажите сервлет туннелирования по HTTP в параметрах защищенного клиента. Используйте хост и порт, возвращенные из конфигурации защищенного соединения с облаком, в следующем формате:

Этот прием применим, когда объект EJB перемещается в облако, а клиент EJB остается в среде заказчика и наоборот.

Примечание: приложения Liberty for Java, в которых используются объекты EJB, можно развертывать в среде IBM Cloud Instant; однако удаленные объекты EJB не будут доступны удаленно по протоколу CORBA/IIOP из-за ограничений на порты в среде IBM Cloud. Дополнительная информация о Liberty for Java on IBM Cloud приведена в разделе Функции Liberty, поддерживаемые в IBM Cloud.