2010-05-12 37 views
6

我有一個場景,我有單個入口點Servlet和進一步的Servlet,請求被轉發到進行重處理。Tomcat實例之間的RequestDispatcher轉發

我正在尋找分配此負載的選項,我想知道是否可以使用Tomcat或其他平臺在使用集羣類型配置或類似方法的Servlet坐在不同服務器上轉發請求。

我發現了關於集羣Servlets和Tomcat的一些文檔,但是沒有一個表明Servlet請求轉發是否可以從我所能看到的。

http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/web-tier/web-tier5.html

http://tomcat.apache.org/tomcat-5.5-doc/cluster-howto.html

回答

5

你可以分發了在集羣環境中的Tomcat的webapps並添加crossContext="true"有問題的web應用的<Context>元素。如果你想這個應用程序ServletContext.getContext()內調用成功返回此虛擬主機上運行的其他Web應用程序的請求調度

crossContext

設置爲true:這裏是Tomcat's Context Configuration Reference的提取物。在安全意識環境中設置爲false(默認值),使getContext()始終返回null

這樣你就可以得到所需要的RequestDispatcher如下:

RequestDispatcher dispatcher = getServletContext().getContext(name).getRequestDispatcher(path);