一个削减引发的ClassNotFound血案

  

WebSpring BootjarTomcat

2019-08-23 14:40:47,835 [http - nio - 9090 - exec - 8] o.a.catalina.core.ContainerBase错误。(Tomcat)。(localhost)。(/)。[dispatcherServlet] - Servlet.service()的servlet (dispatcherServlet)在上下文路径[]把异常[. lang。ClassNotFoundException: org.apache.jsp.WEB_002dINF.views.report。report_005fmain_jsp]与根源   . lang。ClassNotFoundException: org.apache.jsp.WEB_002dINF.views.report.report_005fmain_jsp   java.net.URLClassLoader.findClass (URLClassLoader.java: 381)   org.apache.jasper.servlet.JasperLoader.loadClass (JasperLoader.java: 129)   org.apache.jasper.servlet.JasperLoader.loadClass (JasperLoader.java: 60)   org.apache.catalina.core.DefaultInstanceManager.newInstance (DefaultInstanceManager.java: 159)   org.apache.jasper.servlet.JspServletWrapper.getServlet (JspServletWrapper.java: 171)   org.apache.jasper.servlet.JspServletWrapper.service (JspServletWrapper.java: 380)   org.apache.jasper.servlet.JspServlet.serviceJspFile (JspServlet.java: 386)   org.apache.jasper.servlet.JspServlet.service (JspServlet.java: 330)   javax.servlet.http.HttpServlet.service (HttpServlet.java: 742)   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java: 231)   org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java: 166)   org.apache.tomcat.websocket.server.WsFilter.doFilter (WsFilter.java: 52)   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java: 193)   org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java: 166)   org.apache.catalina.core.ApplicationDispatcher.invoke (ApplicationDispatcher.java: 728)   org.apache.catalina.core.ApplicationDispatcher.proce * * *装备(ApplicationDispatcher.java: 470)   在org.apache.catalina.core.ApplicationDispatcher.doForward (ApplicationDispatcher。java:


ClassNotFoundExceptionSpring BootGithub https://github.com/spring-projects/spring-boot/issues/5009

Tomcat/tmpTomcattmpclass worktmp

TomcattmpROOTClassNotFoundException

这里补充一下背景知识:tmp目录在Centos6以及之前是通过TmpWatch的定时任务来定时清理,而Centos7之后直接修改为了

1,类

AA.javaA。classROOTAjavaclass

2, Dev-toolClassLoader

dev-toolSpring Bootdev-tooljarclassClassLoaderClassNotFoundException

dev-tooldev-tool

Dev-toolClassLoader

3类

jarjsp

) b) jsp

URLClassLoaderjava


一个削减引发的ClassNotFound血案

OKNOK

Eclipse https://www.cnblogs.com/east7/p/10285955.html

TomcatJSP

JspServletjsp JspRuntimeContextaddgetServletWrapper

JspServletCompiler jsp

ServletclassOKNOK

1, ServletWrapper

JspJspRuntimeContextwrapperwrapper

2, Java

依从者。classgenerateJava

公共空checkOutputDir () {   如果(outputDir !=null) {   如果(!(新文件(outputDir) .exists ()) {   makeOutputDir ();   }   其他}{   createOutputDir ();   }   }

outputDircreateOutputDir

{试   文件基?options.getScratchDir ();   .toURL baseUrl=base.toURI () ();   outputDir=base.getAbsolutePath() +文件。分离器+路径+   File.separator;   如果(! makeOutputDir ()) {   把新的IllegalStateException (Localizer.getMessage (jsp.error.outputfolder "));   }   }捕捉(MalformedURLException e) {   把新的IllegalStateException (Localizer.getMessage (“jsp.error.outputfolder”), e);   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

一个削减引发的ClassNotFound血案