当前位置: 首页 > 面试题库 >

如何从JVM外部的对象中调用方法?

龚勇锐
2023-03-14
问题内容

我有一个非常简单的Java类,它使用输入验证以及明显的void set()和String get()方法来有效地装饰Map。

我希望能够有效地调用这些方法并从JVM外部处理返回值和异常,但仍在同一台计算机上 更新:我想到的调用者不是另一个JVM; 谢谢@戴夫雷

我的实施注意事项很典型

  • 性能
  • 易于实施和维护(简单吗?)
  • 可靠性
  • 灵活性(例如,我可以从远程计算机上拨打电话等)

有“正确的方法”吗?如果没有,我有什么选择,每种选择的利弊是什么?

(人们实际上已经做了,可以提供现实生活中的反馈将是很棒的!)


问题答案:

好。现在,我知道客户端不是Java,这是另一种尝试。由于您希望进行进程​​外访问,并且可能希望进行远程计算机访问,因此,我认为JNI不是您想要的,因为这完全是进程内的(而且很麻烦)。以下是一些其他选项:

Raw Sockets
:只需在Java中设置侦听器套接字并接受连接即可。建立连接后,请阅读请求并发送回响应。几乎每种语言都可以使用套接字,因此这是一个非常通用的解决方案。但是,您必须定义自己的编组方案,解析等。

XML-RPC :这几天不怎么流行,但是它简单有效。有
Java库
以及大多数其他语言的库。

CORBA :如上所述,CORBA是一种选择,但它相当复杂,并且越来越难以获得专家的支持。

Web服务器
:在您的应用中设置嵌入式Web服务器并处理请求。我听说过有关Jetty的好消息,或者您可以使用Java附带的内容。我已经成功地使用后者将Java编写的模拟中的KML文件存储到Google
Earth。大多数其他语言都有用于发出HTTP请求的库。您如何编码数据(XML,文本等)取决于您自己。

Web服务 :我认为这会更加复杂,但是您可以使用JAX-WS将对象公开为Web服务。NetBeans具有用于构建Web服务的相当不错的工具,但这可能是过大了。



 类似资料:
  • 问题内容: 我的模板看不到从Spring传递过来的对象。 我的代码: Contoller的代码: 主模板的代码: 片段的代码: 结果,我看到了方法调用的代码,例如 为什么thymeleaf不调用方法,而是在输出页上打印此文本?在http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html的示例中,方法调用具有相同的语法,例如 相同的代

  • 问题内容: 我有一个具有称为的私有方法的类。我想从外面打电话。我认为应该可以反思,但是我得到了。有任何想法吗??? 问题答案: 利用使用其之前的Method对象的方法。

  • 下面是我要为其创建测试的类和方法: 具体地说,我希望模拟getAnalytics.getAll(),这样它就会返回一个我已经定义的字符串。而不是方法执行它的任务。这是我的代码:

  • 我想要一个方法,它从处理中调用一个方法,并返回可能产生的任何值。 我已经有了一个方法,它从当前实例上的超类中调用一个方法,所以我认为这一方法的一个实现就是用我已有的方法创建一个草图 然后做一些像 但是我得到了以下异常,因为我没有调用或 异常线程"main"java.lang.NullPointerExcema 在processing.core.PApplet.textWidth(PApplet.j

  • 类以这种方式实例化: 代码如下:

  • 问题内容: 我想从React元素的实例中调用React组件公开的方法。 例如,在此jsfiddle中。我想从参考中调用该方法。 有没有一种方法可以实现而无需编写其他包装程序? 编辑 (从JSFiddle复制的代码) 问题答案: 有两种访问内部函数的方法。一个实例级别,如您所愿,另一个静态级别。 实例 您需要在从返回时调用函数。见下文。 静态的 看一下ReactJS Statics。但是请注意,静态