В рамках нового проекта я изучил возможность повторного использования EJB. Это делается для того, чтобы использовать существующую бизнес-логику, а не для клонирования, которое затем также необходимо было бы поддерживать отдельно.
Попытка скомпилировать вызывающий код EJB в Java 11 послужила кратким напоминанием. В рамках JEP 320 из Java удаляются следующие функции.
- модуль java.corba
- javax.rmi. КОРБА
- javax.rmi (пакеты RMI-IIOP)
Пример раздела кода, который не будет компилироваться
Context context = new InitialContext(); Object raw = context.lookup(jndiName); ARemoteType type = (ARemoteType )PortableRemoteObject.narrow(raw, ARemoteType .class);
К счастью, в рамках Java EE Eclipse Foundation доступна реализация CORBA и RMI-IIOP Glassfish! Включение приведенного ниже фрагмента Gradle позволило коду скомпилироваться и работать без каких-либо изменений.
implementation group: 'org.glassfish.corba', name: 'glassfish-corba-orb', version: '4.2.0'
Рекомендации
- Та же короткая статья в моем блоге
- JEP 320: Удалите модули Java EE и CORBA
- Стеклянная рыба КОРБА
- Репозиторий Maven
Оригинал: “https://dev.to/dbh/java-11-making-rmi-calls-and-ejbs-work-again-1l5b”