我们在AIX服务器上运行的Websphere应用服务器上运行一个基于Servlet / JSP的应用程序。客户端与Websphere服务器上之前提到的应用程序之间有另一台Tomcat服务器(在不同的机器上)。如何在Tomcat和websphere之间建立连接?我所想到的是 - 在Tomcat上部署一个servlet,并使用java.net.URL&和一个servlet建立servlet连接。网址连接。将tomcat服务器上的请求从客户端重定向到Websphere服务器应用程序,并根据字节流获取响应。
使用此类解决方案的优缺点是什么?什么是其他替代品或更好的设计选择?
答案 0 :(得分:0)
您可以让客户端直接将请求发送到其他服务器。而不是
<form action="generatereport" method="post">
使用
<form action="http://other.com/generatereport" method="post">
任何额外的参数都可以通过<input type="hidden">
传递。
或者如果支持GET,您可以代替method="get"
而不是
<a href="http://other.com/generatereport?param=foo">
或
response.sendRedirect("http://other.com/generatereport?param=foo");
或者,如果存在某些安全限制和/或客户端不应该知道其他服务器的URL,那么您最好的选择是在URLConnection
的帮助下自己代理代理。
URLConnection connection = new URL("http://other.com/generatereport").openConnection();
// Copy necessary request headers from request.getHeader() to connection.setRequestProperty().
// If POST, copy request.getInputStream() to connection.getOutputStream() as well.
// Copy necessary response headers from connection.getHeaderField() to response.setHeader().
// Finally copy connection.getInputStream() to response.getOutputStream().