是否可以在tomcat中运行RMI服务器?

时间:2015-07-24 10:08:43

标签: java rmi

我有两个tomact实例,在Tomcat 7上运行(称之为tomcat 1tomcat 2)。我需要安排分布式计算。服务器tomcat 1应该在tomcat 2的VM上调用某种方法。

甚至可以吗?我知道Tomcat是一个servlet容器。它支持这样的东西吗?

2 个答案:

答案 0 :(得分:1)

是的,这是可能的,但您不能在Tomcat上运行RMI。您必须在服务器上运行rmiregistry并从Tomcat连接到此注册表。您的应用程序应该实现接口范围Remote,以及它在一般RMI应用程序中的实现。这可能有点困难,因为你必须为tomcat 1注册一次你的服务两次,对tomcat 2注册第二次,它可以通过配置或硬编码来完成。

也许您应该考虑将您的RMI服务器作为Java应用程序提供,并从Tomcat调用那里的方法或阅读有关JMS的信息,这是比RMI更常见的解决方案。

答案 1 :(得分:1)

RMI 服务器可以在 Tomcat 中运行,启动它的好地方是 ServletContextListener。

使用 LocateRegistry.createRegistry(port),您甚至不需要外部 rmiregistry。

如今,人们会使用基于 HTTP 的协议(如 REST)在 Tomcat 等服务器中托管服务,但 RMI 仍然有效,并且比 HTTP 更快、更易于使用。