2 Tomcat实例 - 2个应用程序之间的通信

时间:2013-08-08 08:51:50

标签: java jsp tomcat

我有一个网络服务器,运行了2个tomcat实例。在每个tomcat实例上,我有多个Web应用程序或Web服务。

在第二个tomcat服务器上运行的webapp上,从第一个tomcat服务器的webapp调用函数(或使用参数触发某个事件)的最佳方法是什么。如果是使用带参数的url的呼叫,则此呼叫应该是安全的,并且无法从服务器外部访问。

我已经阅读了一些关于获取servlet上下文的内容,但是这可能在不同的tomcat实例上吗?我认为只有在同一个实例中运行的webapp才能实现这一点。

我不想使用CORBA,RMI或SOAP,因为这对我的问题有点过分......这就是我的想法:)

欢迎使用代码示例。谢谢!

3 个答案:

答案 0 :(得分:0)

ServletContext仅在同一容器中有效,无法在两个JVM之间共享。你要问的最简单的方法就是在两个容器之间使用各种各样的RPC,而RMI似乎不是特别矫枉过正。另一种常用的方法是在接收容器中调用逻辑的简单HTTP Web服务(注意小写的“s”)。

答案 1 :(得分:0)

Spring的HTTPInvoker很适合这个。您可以使用Java接口,并且每个实例上的代码都不需要知道调用是远程的 - 它只是调用Java方法。

为了安全起见,您可以在不同的端口上使用Sun HTTP服务器(而不是在Tomcat中使用servlet),并且只在localhost上监听。

看看这里

http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/remoting.html#remoting-httpinvoker

答案 2 :(得分:0)

使用简单的REST服务,而不是那么安全。