在WebLogic 11g上将请求发送到JspServlet的无止境循环
我有以下配置: ServletA(在我的例子中是apachecxfserlet,但这并不重要),它匹配所有请求-/*。 ServletB,它将调度到一个命名的servlet——“jsp”(如果可用)或“JspServlet”(否则) ServletA配置为将所有JSP请求转发给ServletB。这是完美的工作 另一方面,如果应用程序在Tomcat上运行,ServletB正向“org.apache.jasper.servlet.JSPServlet”或“weblogic.servlet.JSPServlet”,如果我在使用Oracle weblogic Tomcat上的一切工作都很完美 在Weblogic上,我有以下问题: ServletA正在转发到ServletB它将转发到在WebLogic 11g上将请求发送到JspServlet的无止境循环,jsp,servlets,weblogic,Jsp,Servlets,Weblogic,我有以下配置: ServletA(在我的例子中是apachecxfserlet,但这并不重要),它匹配所有请求-/*。 ServletB,它将调度到一个命名的servlet——“jsp”(如果可用)或“JspServlet”(否则) ServletA配置为将所有JSP请求转发给ServletB。这是完美的工作 另一方面,如果应用程序在Tomcat上运行,ServletB正向“org.apache.jasper.servlet.JSPServlet”或“weblogic.servlet.JSPSe
weblogic.servlet.JSPServlet
。JSPServlet应该为JSP服务,但它没有。相反,我进入了一个无休止的循环(ServletA->ServletB->JSPServlet->ServletA->……)
有没有人知道weblogic.servlet.JSPServlet
内部发生了什么,有没有人知道如何让weblogic为我的JSP服务?欢迎提出所有意见和建议。。。我已经在这个问题上花了太多时间,但没有成功
注:
- 在Weblogic 10.3.5上测试李>
- 如果ServletB转发到虚拟servlet,则不会发生循环李>
- 转发通过使用RequestDispatcher完成,通过调用Tomcat的getNamedDispatcher(“jsp”)或WebLogic的getNamedDispatcher(“JspServlet”)检索
- 仅包含
(正斜杠)字符的servlet路径字符串表示应用程序的默认servlet。servlet路径解析为请求URI减去上下文路径;在这种情况下,路径解析为null/
- 以
(星号)开头的字符串指定扩展映射*
- getPathInfo
- getServletPath
- 如果
映射到ServletA,则/
和servletPath=“abc/def.html”
pathInfo=null
- 如果
映射到ServletA,则/*
和servletPath=”“
pathInfo=“abc/def.html”
为确保返回的路径信息非空,请将所有出现的
/
(正斜杠)servlet映射字符串替换为/*
,无论何时将CXF servlet与JSP Web应用程序捆绑在一起,都不应将其映射到/*
。要么它必须被映射到一个更具体的URL模式,要么它必须在一场单独的战争中部署。我有很多理由将CXF映射到/*并且完全不选择单独的战争。事实上,没有JSP我也可以生活,但他们会让我的生活轻松很多。我已经做到了。实际上,最初我使用“/*”映射,由于我非常绝望,我尝试了“/”映射,获得了上述结果。无论如何,谢谢你的回答!