JDK-11 将删除 JDK 的许多旧部分(JEP-320)。其中一些(例如 JAXB)功能将作为常规库提供。您只需添加另一个依赖项,一切都会再次正常运行。
但对于 CORBA 来说并非如此,因为
在 Java 中使用 CORBA 开发现代应用程序没有太大的兴趣
然而,我处于需要维护仍然需要 CORBA 的旧应用程序同时仍想更新到 JDK-11 的痛苦境地。
是否有替代库或其他在不删除这些应用程序的 CORBA 功能的情况下迁移到 JDK-11 的好方法?
JDK-11 将删除 JDK 的许多旧部分(JEP-320)。其中一些(例如 JAXB)功能将作为常规库提供。您只需添加另一个依赖项,一切都会再次正常运行。
但对于 CORBA 来说并非如此,因为
在 Java 中使用 CORBA 开发现代应用程序没有太大的兴趣
然而,我处于需要维护仍然需要 CORBA 的旧应用程序同时仍想更新到 JDK-11 的痛苦境地。
是否有替代库或其他在不删除这些应用程序的 CORBA 功能的情况下迁移到 JDK-11 的好方法?
你绝对可以看看javaee/glassfish-corba。记录在案的主页上写着 -
GlassFish ORB 符合 CORBA 2.3.1 规范以及可互操作名称服务和便携式拦截器的 CORBA 3.0 规范。它包括 IDL 和 RMI-IIOP 支持。GlassFish ORB 具有开放、可扩展的架构,通过开放的 SPI 支持灵活的配置和扩展。
此外,JEP 本身的开发人员也应该感兴趣 -
移除
java.corba
模块的风险是:1.如果 CORBA 实现仅包含“认可”的 CORBA API的子集并期望 JDK 提供其余部分,则它们将不会编译或运行。
2.使用RMI-IIOP 的应用程序和 CORBA 实现将无法编译或运行。RMI-IIOP 包(
javax.rmi
和javax.rmi.CORBA
)位于java.corba
模块中并与其中的 CORBA 实现相关联,因此一旦删除,Java SE 中将不再支持RMI-IIOP 。java.corba
3.使用该
javax.activity
包的应用程序和 CORBA 实现将无法编译或运行。该包位于java.corba
模块中并与其中的 CORBA 实现绑定,因此一旦java.corba
删除,Java SE 将不再支持。
再往下走
Java EE 管理权从 JCP 到 Eclipse 的转变
Foundation 包括CORBA 和 RMI-IIOP 的 GlassFish 实现。
此外,
这个依赖可以在JDK11中使用
<dependency>
<groupId>org.glassfish.corba</groupId>
<artifactId>glassfish-corba-omgapi</artifactId>
<version>4.2.1</version>
</dependency>
我还没有迁移到 Java 11,但我总是遇到 Java CORBA 实现的问题,因为它不完整,不支持标准中定义的所有对象方法,不支持 ssliop 等等。我总是通过将 JacORB OMG jar 放在背书目录中并将系统属性设置为 JacORB orb 来替换它:
-Dorg.omg.CORBA.ORBClass=org.jacorb.orb.ORB -Dorg.omg.CORBA.ORBSingletonClass=org.jacorb.orb.ORBSingleton
顺便提一句。我不同意“在 Java 中使用 CORBA 开发现代应用程序没有太大的兴趣”毕竟 J2EE 是基于什么?
Micro Focus 提供的所有 ORB 都完全支持 JDK 11。