项目比较老,用的jsp,所以一直在用jetty。今天调试的时候发现了一个很奇怪的问题,昨天晚上还好好的,今天调试就各种报错。
PWC6199: Generated servlet error: 程序包javax.servlet.jsp.tagext不存在 at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:129) at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:299) at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:392) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:453) at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:625) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:473) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:377) at org.eclipse.jetty.jsp.JettyJspServlet.service(JettyJspServlet.java:103) at javax.servlet.http.HttpServlet.service(HttpServlet.java:750) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1655) at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:99) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:566) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:203) at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:73) at com.jfinal.render.JspRender.render(JspRender.java:67) ... 32 more
郁闷了一上午了,因为啥都没动啊,昨天晚上调试的还很爽,怎么今天说报错就报错了。突然灵光一闪,不对,我确实动了一个地方。
昨天晚上的代码:
JFinal.start("src/main/webapp", 8080, "/", 5);
然后今天我改成了:
JFinal.start("src/main/webapp", 8080, "/", 0);
没错,只是把scanIntervalSeconds调了,因为我不想使用热部署,eclipse自带的debug热部署我个人觉得就足够用了,所以就把扫描间隔从5调成了0,但是就这么一调,导致出错了。
在这个灵感的感召下,我再调成5,ok,一切正常。再调成0,又歇菜。
我觉得这个问题相当诡异啊,理论上不应该啊。
项目:JFinal
如果你不想要热加载,将 scanIntervalSeconds 改成一个十分大的数也可以,例如 999999