当前位置:  开发笔记 > 编程语言 > 正文

通过不同的JVM实现接口

如何解决《通过不同的JVM实现接口》经验,为你挑选了1个好方法。

让我们说你有接口定义.

该接口可以是Operation.

然后,您有两个应用程序在不同的JVM中运行,并通过交换操作实例以某种方式远程通信.

让我们称之为应用程序和应用.

如果应用程序A使用应用程序B的类路径中不可用的类实现Operation,那么应用程序B是否仍然能够处理该接口的实现?即使B在不同的JVM中?



1> Andrzej Doyl..:

这取决于你的"以某种方式远程通信"部分发生的魔力.

如果通过RMI或类似技术进行此通信,那么这将没有问题.应用程序B将Operation在JVM A中为对象创建远程代理,并且在此代理上调用方法会生成对JVM A的HTTP请求,这些请求将针对生活在该JVM(可以访问实现类)的实际对象进行解析.

如果通过序列化对象并通过线路发送它来完成此通信,那么它将无法工作.当来自应用程序A的对象到达JVM B时,反序列化将失败(使用ClassNotFoundException或类似).

可能还有其他远程技术,在这种情况下,事情依赖于实现.我知道类加载器可以从字节数组中加载类,因此在概念上很可能有这样的类加载器能够从远程源加载类.理论上,网络库可以通过这种方式串行化实际类,因此,虽然JVM B本身不知道实现类,但它的类加载器将根据需要提供类'字节码.

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有