51

JDK-11 将删除 JDK 的许多旧部分(JEP-320)。其中一些(例如 JAXB)功能将作为常规库提供。您只需添加另一个依赖项,一切都会再次正常运行。

但对于 CORBA 来说并非如此,因为

在 Java 中使用 CORBA 开发现代应用程序没有太大的兴趣

然而,我处于需要维护仍然需要 CORBA 的旧应用程序同时仍想更新到 JDK-11 的痛苦境地。

是否有替代库或其他在不删除这些应用程序的 CORBA 功能的情况下迁移到 JDK-11 的好方法?

4

4 回答 4

27

你绝对可以看看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.rmijavax.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 实现

此外,

于 2018-08-06T16:23:04.183 回答
9

这个依赖可以在JDK11中使用

        <dependency>
            <groupId>org.glassfish.corba</groupId>
            <artifactId>glassfish-corba-omgapi</artifactId>
            <version>4.2.1</version>
        </dependency>
于 2019-06-17T04:39:00.423 回答
5

我还没有迁移到 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 是基于什么?

于 2019-03-28T12:29:12.187 回答
0

Micro Focus 提供的所有 ORB 都完全支持 JDK 11。

于 2020-06-01T18:46:49.313 回答