Я перехожу с 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();
}
}
}