Я хочу, чтобы иметь возможность изменять правила в urlrewrite.xml без перезапуска сервера.Tuckey UrlRewrite: ClassNotFoundException после смены 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>
Когда я изменить значение <to>
элемента в urlrewrite.xml, пытаясь выполнить это правило вызывает исключение.
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.Defau ltInstanceManager.newInstance (DefaultInstanceManager.java:145) на org.apache.jasper.servlet.JspServletWrapper.getServlet (JspServletWrapper.java:172) на 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.UrlRe writeFilter.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) at org.apache.catalina.core.ApplicationDispatcher.forward (ApplicationDispatcher.java:338) at org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite (NormalRewrittenUrl.java:213) at 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) по адресу org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:171) по адресу org.apache.catalina.va lves.ErrorReportValve.invoke (ErrorReportValve.java:103) на org.apache.catalina.valves.AccessLogValve.invoke (AccessLogValve.java:950) на org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve. Java: 116) на org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:408) на org.apache.coyote.http11.AbstractHttp11Processor.process (AbstractHttp11Processor.java:1070) в орг .apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process (AbstractProtocol.java:611) at org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run (JIoEndpoint.java:314) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1145) на java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:615) в org.apache.tomcat.util.threads .TaskThread $ WrappingRunnable.run (TaskThread.java:61) в java.lang.Thread.run (Thread.java:745)
кто-нибудь знает, почему это происходит, или, по крайней мере, как это исправить?
Спасибо!
Часть в tomcat хранит ссылку на скомпилированные JSP, но очищает выходной каталог компилятора. Скорее всего, изменение, которое вы сделали для 'urlrewrite.xml', вызвало такое поведение. Проверьте, может ли помочь https://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Common_Attributes (настройка context.xml, в частности перезагружаемая). – mp911de
Можете ли вы добавить свой urlrewrite.xml? – melis