Java 如何远程调用方法?

Java 如何远程调用方法?,java,web-services,rmi,Java,Web Services,Rmi,我有两个java项目。从project1我必须调用project2的一个方法。这两个项目都是使用核心java概念开发的,并且分别运行。正如我所知,在这种情况下,我必须使用远程调用方法的任何技术(我正确吗?),如RMI、WebServices、JMS等。我必须经常从project1调用project2的方法。实现这一目标的最佳途径是什么 谢谢您的项目是部署到应用服务器还是servlet容器上的 您可以使用web服务公开Project 2中的方法。这将是基于标准的,并允许将来的非Java项目在需要时

我有两个java项目。从project1我必须调用project2的一个方法。这两个项目都是使用核心java概念开发的,并且分别运行。正如我所知,在这种情况下,我必须使用远程调用方法的任何技术(我正确吗?),如RMI、WebServices、JMS等。我必须经常从project1调用project2的方法。实现这一目标的最佳途径是什么


谢谢

您的项目是部署到应用服务器还是servlet容器上的

您可以使用web服务公开Project 2中的方法。这将是基于标准的,并允许将来的非Java项目在需要时访问您的服务

如果它适合您,请尝试在异步模式下实现它以获得更好的性能。Web服务也允许异步调用模式。但是,为此,项目1还需要公开回调方法

编辑: 我在Java6中遇到过,您也可以在servlet容器之外部署web服务。下面的链接可以帮助你


但是,不确定这是否可以用于生产环境。

RMI用于客户机-服务器体系结构。将有一个服务器程序来实现您的接口扩展远程,它将在服务器上定义或调用其他方法,并将绑定一个对象。然后您将需要一个客户端程序来查找该对象,并使用该对象调用服务器上的方法

所以,如果您的项目是作为客户机服务器运行的,那么您可以尝试这种方法

接下来您要讨论的是Web服务。Web服务通过特定的协议通过网络向其客户机提供对服务器上编写的某些代码的访问。在这种情况下,您的代码将在服务器上运行,您将使用Web服务从客户端访问它


现在取决于您的项目采用何种体系结构,以及哪种方法更有用、更适合您的场景。

我的项目没有部署在任何容器/服务器中,而是在jvm上运行。如果我让project2成为一个web服务,那么我必须在web容器中部署它?