2014-10-10 26 views
0

我在使用JNI连接到运行Java服务器C++编写客户端的UnicastRemoteObject基于 RMI。如果我使用JNI DefineClass函数加载已编译的远程接口定义,或者确保使用包含接口的.class文件的类路径启动JVM,那么它工作正常。调用RMI方法从C++没有远程接口定义

但是,我想知道这是否真的有必要 - 它不可能查询和/或调用RMI服务器的接口,而无需在本地定义客户端的定义?

回答

0

您需要远程存根,其编码:

  • 目标IP地址
  • 目标端口
  • 目标的ObjectID
  • 一个机构,用于产生正确的方法ID

...并且如果没有所有的类和接口,它就不可能通过CLASS获得该存根PATH或RMI代码库功能。

+0

换句话说,不是?这是我正在达成的结论,但无法完全找到确认的说法。远程存根是由客户端还是服务器生成的? – Aaron 2014-10-15 14:51:53

+0

当远程对象被删除时,远程存根由服务器生成。 – EJP 2016-09-15 06:44:28