主机上有多个tomcats,如何重定向请求,以便客户端只知道一个tomcat

时间:2016-01-21 19:57:04

标签: java tomcat redirect

我在不同端口上的主机上部署了两个tomcats。一个正在侦听端口A,一个正在侦听端口B.两个tomcats上都有托管的webapp。

我需要确保在两个tomcats上的那些webapps上调用APIS的客户端不需要知道这两个端口。客户端(angularJS)应该只能调用一个tomcat,并且内部tomcat应该能够将请求正确的服务重定向到另一个tomcat并将响应传递回客户端。

这样我也能够处理相同的原始策略,因为angularjs webapp也部署在我要发送请求的tomcat上,并且cookie也可以与此一起使用,因为只有一个服务器所在的cookie将来自。

有没有办法实现这一目标?我可以在第一个tomcat上做任何配置,将基于URI的一些请求重定向到第二个tomcat吗?或者我可以部署的任何其他工具来支持它?我听说使用iptables进行端口重定向。可以在这里使用吗?

1 个答案:

答案 0 :(得分:0)

客户端向端口A发出请求,并在java代码内部向http://localhost:B发送http请求

要执行http请求,只需搜索“java http request”并选择数百个示例中的一个。一种可能的方式:How do I do a HTTP GET in Java?

   public static String getHTML(String urlToRead) throws Exception {
      StringBuilder result = new StringBuilder();
      URL url = new URL(urlToRead);
      HttpURLConnection conn = (HttpURLConnection) url.openConnection();
      conn.setRequestMethod("GET");
      BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
      String line;
      while ((line = rd.readLine()) != null) {
         result.append(line);
      }
      rd.close();
      return result.toString();
   }