我将Web应用程序部署到JBoss EAP6和Glassfish 4中,每件事都按预期工作,直到我将deltaskpike jar添加到项目中。
启用deltaskpike后,servlet中的以下代码:
request.getServletContext().getRequestDispatcher("/faces/page.xhtml").forward(request, response);
将向浏览器发送重定向响应(HTTP:302),而不是在服务器端转发。如果我从应用程序中删除deltaskpike jar,则调度程序转发按预期工作。
如果我转发到FacesServlet以外的任何东西,它会按预期工作。
Deltaspike是否修改了RequestDispatcher的默认行为?
答案 0 :(得分:3)
我知道了,Deltaspike没有修改请求调度程序。它实际上做的是通过向浏览器发送带有参数的重定向响应,向每个没有JSF请求的JSF请求添加一个window id参数(称为dswid)。
要避免重定向,只需将?dswid = {the_current_value}添加到您的调度程序路径。