2012-02-01 90 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()返回的内容以获得所需的效果。

另一种方法是尝试远程调试登台服务器,然后走进调度程序代码,确切地查看它出错的位置。