2015-01-16 84 views
0

我有一個EAR1。這個EAR1裏面有一個WAR1,上下文是'/ war1'。這個war1有一個servlet,裏面有一個'/ servlet1'的url-mapping。從一個servlet向另一個戰爭中的servlet轉發請求

在WebSphere的同一個實例中,我有一個EAR2。這個EAR2裏面有一個WAR2,上下文是'/ war2'。這個war2在它裏面有一個servlet url映射的'/ servlet2'。

EAR1---- WAR 1 --- Servlet1 
EAR2---- WAR 2 --- Servlet2 

現在,我需要繼續轉發來自servlet1請求的servlet 2 ...所以,裏面servlet1,我想forwrd請求這樣..

getServletContext().getRequestDispatcher("/war2/servlet2").forward(request, response); 

,但失敗了。

如何將請求轉發到war2中的EAR2中的servlet2。

在此先感謝

回答

0

我懷疑,既然RequestDispatcher的住在ServletContext中,你將無法轉發到不同的servlet。你會得到什麼錯誤?

這裏說:

http://java.boot.by/wcd-guide/ch03s05.html

「的ServletContext.getRequestDispatcher方法接受一個String 參數描述ServletContext的範圍之內的路徑。」

看到這個職位的詳細信息:

ServletContext.getRequestDispatcher() vs ServletRequest.getRequestDispatcher()

+0

我沒有看到任何錯誤....但請求不會被轉發到的Serlvet 2 – user1502377

+0

Intresting ......但是當我嘗試着用HREF =「/ WAR2/servlet2」在JSP中的要求,它是正確的轉發....不知道這裏的區別是什麼? – user1502377

0

根據您的描述,您有兩個WAR文件(war1war2),所以這意味着你有在同一臺服務器two背景。

爲了在不同的環境下訪問資源,你可以在下面做。

ServletContext ctx = request.getServletContext().getContext("/war2"); 
RequestDispatcher dispatcher = ctx.getRequestDispatcher("/servlet2"); 
dispatcher.forward(request, response); 
+0

我可以看到,'servlet2'的請求調度程序是beind構造良好......但在此之後,轉發似乎並沒有轉發它.. – user1502377

相關問題