JDK-11将删除JDK的许多旧部分(JEP-320)。对于其中一些(例如JAXB),功能将作为常规库提供。您只需添加另一个依赖项,一切正常。
但对于CORBA则不然,因为
使用Java中的CORBA开发现代应用程序没有太大的兴趣
然而,我仍然处于痛苦的境地,需要维护仍旧需要CORBA的旧应用程序,同时仍希望更新到JDK-11。
在没有删除这些应用程序的CORBA功能的情况下,是否有替换库或迁移到JDK-11的另一种好方法?
你绝对可以看看javaee/glassfish-corba。记录在案的home page读 -
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.corba
,Java SE中将不会支持RMI-IIOP。3.使用
javax.activity
包的应用程序和CORBA实现将无法编译或运行。该软件包位于java.corba
模块中,并与其中的CORBA实现相关联,因此一旦删除java.corba
,Java SE中将不再支持。
在那里
另外,
我还没有转向Java 11,但我总是遇到Java CORBA实现的问题,因为它不完整,并且不支持标准中定义的所有Object方法,不支持ssliop等。我总是通过将JacORB OMG jar放在endorsed目录中并将系统属性设置为pont到JacORB orb来替换它:
-Dorg.omg.CORBA.ORBClass = org.jacorb.orb.ORB -Dorg.omg.CORBA.ORBSingletonClass = org.jacorb.orb.ORBSingleton
BTW。我不同意“”用Java编写CORBA的现代应用程序没有什么重要的意义“毕竟J2EE是什么?
这种依赖可以在JDK11中使用
<dependency>
<groupId>org.glassfish.corba</groupId>
<artifactId>glassfish-corba-omgapi</artifactId>
<version>4.2.1</version>
</dependency>