是否可以在 tomcat 中 运行 RMI 服务器?
Is it possible to run RMI server in tomcat?
我有两个 tomact 实例,运行 在 Tomcat 7
上(称之为 tomcat 1
、tomcat 2
)。我需要安排分布式计算。服务器 tomcat 1
应该在 tomcat 2
的 VM 上调用一些方法。
有可能吗?我知道 Tomcat 是一个 servlet 容器。它支持这样的东西吗?
是的,这是可能的,但您没有 运行 Tomcat 上的 RMI。您必须 运行 服务器上的 rmiregistry 并从您的 Tomcat 连接到此注册表。您的应用程序应该实现接口范围 Remote,并且它的实现类似于一般的 RMI 应用程序。这可能有点困难,因为您必须为 tomcat 1 注册您的服务两次,然后为 tomcat 2 注册您的服务,这可以通过配置或硬编码来完成。
也许您应该考虑将 RMI 服务器作为 java 应用程序提供,并从 Tomcat 调用那里的方法或阅读有关 JMS 的信息,这是当今比 RMI 更常见的解决方案。
RMI 服务器可以是 运行 in Tomcat,启动它的好地方是 ServletContextListener。
使用 LocateRegistry.createRegistry(端口),您甚至不需要外部 rmiregistry。
现在人们会使用像 REST 这样的基于 HTTP 的协议来在像 Tomcat 这样的服务器中托管服务,但是 RMI 仍然可以工作,并且比 HTTP 更快更容易使用。
我有两个 tomact 实例,运行 在 Tomcat 7
上(称之为 tomcat 1
、tomcat 2
)。我需要安排分布式计算。服务器 tomcat 1
应该在 tomcat 2
的 VM 上调用一些方法。
有可能吗?我知道 Tomcat 是一个 servlet 容器。它支持这样的东西吗?
是的,这是可能的,但您没有 运行 Tomcat 上的 RMI。您必须 运行 服务器上的 rmiregistry 并从您的 Tomcat 连接到此注册表。您的应用程序应该实现接口范围 Remote,并且它的实现类似于一般的 RMI 应用程序。这可能有点困难,因为您必须为 tomcat 1 注册您的服务两次,然后为 tomcat 2 注册您的服务,这可以通过配置或硬编码来完成。
也许您应该考虑将 RMI 服务器作为 java 应用程序提供,并从 Tomcat 调用那里的方法或阅读有关 JMS 的信息,这是当今比 RMI 更常见的解决方案。
RMI 服务器可以是 运行 in Tomcat,启动它的好地方是 ServletContextListener。
使用 LocateRegistry.createRegistry(端口),您甚至不需要外部 rmiregistry。
现在人们会使用像 REST 这样的基于 HTTP 的协议来在像 Tomcat 这样的服务器中托管服务,但是 RMI 仍然可以工作,并且比 HTTP 更快更容易使用。