2016-03-05 23 views
0

不同的端口上運行的其他應用程序,我能夠轉發請求,使用下面的代碼不同的應用:的RequestDispatcher轉發請求到同一Tomcat實例

 

    ServletContext web1, web2; 

    web1 = getServletContext(); 
    web2 = web1.getContext("/EmailSender"); 

    RequestDispatcher dispatcher = web2.getRequestDispatcher("/sendEmail.do"); 
    dispatcher.forward(request, response); 

這是成功請求轉發到不同的應用程序,EmailSender,運行在同一個端口上。

我在其他幾個端口上部署了EmailSender應用程序,並嘗試將請求轉發給它們。總而言之,有沒有辦法轉發到不同端口上運行的不同應用程序。

我已經試過:

 

    ServletContext web1, web2; 
    int port = 8090; 

    web1 = getServletContext(); 
    web2 = web1.getContext("http://localhost:"+port+"/EmailSender"); 

    RequestDispatcher dispatcher = web2.getRequestDispatcher("/sendEmail.do"); 

    dispatcher.forward(request, response); 

這並沒有爲我工作。

任何幫助將不勝感激。謝謝。

回答

0

我認爲不可能以您的方式轉發。這是一個摘錄的JavaDoc的getContext()

此方法允許小服務程序來訪問該服務器的各部分的上下文中,並根據需要獲得從上下文的RequestDispatcher對象。給定的路徑必須以/開頭,將相對於服務器的文檔根目錄進行解釋,並與此容器上託管的其他Web應用程序的上下文根相匹配

「container」是運行在特定端口上的Tomcat的實例。可能方法HttpServletResponse#sendRedirect()是你的朋友...

相關問題