Миграция с Oracle JDK8 на Open jdk11 в поисках замены rmi - PullRequest
1 голос
/ 18 июня 2019

Я перехожу с Oracle JDK8 на OpenJDK11.Я столкнулся с проблемой при вызове exportObject (new Myobj).

Поскольку rmi удален в jdk11, я использую jar-файлы glassfish для использования PortableRemoteObject для экспорта и поиска удаленных объектов

Я использую следующие jar-файлыиз glassfish, чтобы получить пропущенные классы в openjdk11.

  • glassfish-corba-omgapi
  • glassfish-corba-orb
  • javax.transaction.api
  • pfl-dynamic
  • pfl-basic
  • glassfish-corba-internal-api
  • pfl-tf.jar

Я ожидаю JavaScript.rmi.PortableRemoteObject.PortableRemoteObject.exportObject (), чтобы работать как есть в JDK8.Но я получаю ошибку ниже.Я пытался использовать com.sun.corba.ee.impl.javax.rmi.PortableRemoteObjet, а также com.sun.corba.se.impl.javax.rmi.PortableRemoteObject из стеклянных банок.Но все еще сталкивается с той же ошибкой.

java.rmi.NoSuchObjectException: объект не экспортируется в com.sun.corba.ee.impl.javax.rmi.PortableRemoteObject.toStub (MyClass.java:18) в javax.rmi.PortableRemoteObject.toStub (PortableRemoteObject.java:132)

Задача Ant для RMIC

<!-- Ant task for RMIC -->  
   <target name="rmic">
    <taskdef name="rmic"
             classname="org.apache.tools.ant.taskdefs.Rmic" />
    <rmic classname="com.MyRmiImpl"
          base="${classes.dir}"
          classpathref="javac.classpath" />
  </target>

открытый класс MyNode {

static Registry registry;

public static void main(String[] args) {

        try {

        registry = LocateRegistry.createRegistry(3322);
        MyRmiImpl remoteImpl = new MyRmiImpl();
        PortableRemoteObject.exportObject(remoteImpl); 
        Remote objStub = PortableRemoteObject.toStub(remoteImpl);// getting exception at this line 
        registry.rebind("MyRmiInterface", objStub);

    } catch (Exception e) {
        e.printStackTrace();
    }
}

}

...