2

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

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

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

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

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

4

3 回答 3

0

使用简单的 REST 服务,没有那么安全。

于 2013-08-08T10:05:21.587 回答
0

仅在同一个容器内有效,ServletContext不能在两个 JVM 之间共享。完成您所要求的最简单的方法是在两个容器之间使用某种类型的 RPC,而 RMI 似乎并不是特别过分。另一种常用方法是调用接收容器中的逻辑的简单 HTTP Web 服务(注意小写“s”)。

于 2013-08-08T08:57:03.460 回答
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

于 2013-08-08T09:09:01.990 回答