我在不同端口上的主机上部署了两个tomcats。一个正在侦听端口A,一个正在侦听端口B.两个tomcats上都有托管的webapp。
我需要确保在两个tomcats上的那些webapps上调用APIS的客户端不需要知道这两个端口。客户端(angularJS)应该只能调用一个tomcat,并且内部tomcat应该能够将请求正确的服务重定向到另一个tomcat并将响应传递回客户端。
这样我也能够处理相同的原始策略,因为angularjs webapp也部署在我要发送请求的tomcat上,并且cookie也可以与此一起使用,因为只有一个服务器所在的cookie将来自。
有没有办法实现这一目标?我可以在第一个tomcat上做任何配置,将基于URI的一些请求重定向到第二个tomcat吗?或者我可以部署的任何其他工具来支持它?我听说使用iptables进行端口重定向。可以在这里使用吗?
答案 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();
}