2012-02-01 79 views
0

我們正在使用JBoss 5.1與3.0吉斯,需要使用以下方法從我們的吉斯servlet來轉發到外部的Servlet:吉斯3.0的request.getRequestDispatcher(..)正向前面加上吉斯servlet路徑

@Inject HttpServletRequest request; 
@Inject HttpServletResponse response; 

@GET 
@Produces("application/octet-stream") 
@Path("/get/1234") 
public void fwd() throws ServletException, IOException { 
    String newURL = "/ExternalServlet?action=1234"; 
    RequestDispatcher dispatcher = request.getRequestDispatcher(newURL);   
    dispatcher.forward(request, response); 
} 

在我們的幾臺dev服務器上,這個服務器會轉發到正確的url(例如localhost/ourApp/ExternalServlet),但是在我們的生產臨時服務器上prepending/get/1234,所以url正在轉發到localhost/ourApp/get/1234/ExternalServlet 。重定向工作。

任何想法爲什麼前鋒正在推出Guice servlet?謝謝。

回答

0

我不確定這個的確切原因,但你應該能夠使用HttpServletRequestWrapper解決它。您可以重寫getServletPath()或getContextPath()返回的內容以獲得所需的效果。

另一種方法是嘗試遠程調試登臺服務器,然後走進調度程序代碼,確切地查看它出錯的位置。