我希望能够在不重启服务器的情况下更改urlrewrite.xml中的规则。
我正在运行Tomcat 7。在web.xml文件中,我有...
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>confReloadCheckInterval</param-name>
<param-value>120</param-value>
</init-param>
<init-param>
<param-name>logLevel</param-name>
<param-value>INFO</param-value>
</init-param>
</filter>
当我在urlrewrite.xml中更改
<to>
元素的值时,尝试执行该规则会导致异常。java.lang.ClassNotFoundException: org.apache.jsp.s1.content.about_002dus_jsp 在java.net.URLClassLoader$1.run(URLClassLoader.java:366) 时发生错误,在java.net.URLClassLoader$1.run(URLClassLoader.java:355) 时发生错误,在java.security.AccessController.doPrivileged(Native Method) 时发生错误,在java.net.URLClassLoader.findClass(URLClassLoader.java:354) 时发生错误,org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:132) 加载类时发生错误,org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63) 加载类时发生错误,org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:145) 创建新实例时发生错误,org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:172) 获取servlet时发生错误,org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) 提供服务时发生错误,org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 提供服务时发生错误,org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 提供服务时发生错误,javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 时发生错误,在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 时发生错误,在org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 时发生错误,在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 时发生错误,在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 时发生错误,在org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176) 时发生重写错误,在org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145) 时发生错误,在org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92) 时发生请求处理错误,在org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:389) 时发生过滤错误,在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 时发生错误,在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 时发生错误,在org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748) 时发生调用错误,在org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486) 时发生处理请求错误,在org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411) 时发生转发错误,在org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338) 时发生错误,在org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:213) 时发生重写错误,在org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:171) 时发生重写错误,在org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145) 时发生错误,在org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92) 时发生请求处理错误,在org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:389) 时发生过滤错误,在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 时发生错误,在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 时发生错误,在au.com.pawsforlife.vizsla.controller.UserFilter.doFilter(UserFilter.java:81) 时发生过滤错误,在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 时发生错误,在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 时发生错误,在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) 时发生错误,在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 时发生错误,在org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) 时
有人知道为什么会发生这种情况吗?或者至少怎么解决?谢谢!
urlrewrite.xml
所做的更改导致了这种行为。请查看https://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Common_Attributes(特别是重新加载上下文.xml),以确定是否可以帮助您解决问题。 - mp911de