“更改java版本后,路径login.page不以”/“字符”消息exception开头
我有一个Web应用程序,它使用以下内容:Tomcat 5.0 Struts 1.0 Java 1.5
我必须切换到Java 1.6。当我尝试这样做时,我在浏览器中收到以下exception堆栈:
javax.servlet.ServletException: Path login.page does not start with a "/" character org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) javax.servlet.http.HttpServlet.service(HttpServlet.java:743) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:72) org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:712) org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:682) org.apache.jsp.index_jsp._jspService(index_jsp.java:45) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
根本原因
java.lang.IllegalArgumentException: Path login.page does not start with a "/" character org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:107) org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96) org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54) org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51) org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304) org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) javax.servlet.http.HttpServlet.service(HttpServlet.java:743) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:72) org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:712) org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:682) org.apache.jsp.index_jsp._jspService(index_jsp.java:45) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
它似乎是对"login.page"
的请求,如exception所示,它不以"/"
开头。 请尝试申请"/login.page"
。
大多数servlet库要求路径名以"/"
开头。 例如: javax.servlet.ServletContext#getRequestDispatcher :
路径名必须以
"/"
开头,并且被解释为相对于当前上下文根。 使用getContext
为外部上下文中的资源获取RequestDispatcher
。
查看此页面。
http://wiki.apache.org/struts/StrutsUpgradeNotes12to13
显然你正在使用stuts tiles。 如果您使用的是Struts 1.3,则应将其添加到您的web.xml文件中:
chainConfig org/apache/struts/tiles/chain-config.xml
添加tile请求处理器类并从controller标签中删除conten type属性
- 如何杀死java线程?
- 可靠地将任何对象转换为String然后再返回
- @CacheLookup如何在WebDriver中工作?
- UseConcMarkSweepGC vs UseParallelGC
- 线程“main”中的exceptionjava.lang.NoClassDefFoundError:无法初始化类com.sun.jersey.core.header.MediaTypes
- Bittorrent扩展协议
- BeanUtils.cloneBean()深层复制
- 如何在Java 8中找到N个数字中最大的M个数字?
- 在validationJTextFields的数值是否大于0后,在java中启用JButtons?