优秀的编程知识分享平台

网站首页 > 技术文章 正文

SpringBoot找不到JSP异常处理记录

nanyue 2024-07-29 01:22:40 技术文章 11 ℃

一、问题描述

有一个SpringBoot项目,采用的是内置的Tomcat服务,项目使用的是JSP,在项目发布到服务器以后,一切正常,偶尔会发生找不到某个JSP的异常,异常信息如下:

java.lang.ClassNotFoundException org.apache.jsp.XXXX_jsp

以上错误信息是偶发性的,并不能一直存在。

二、问题分析

在Tomcat中,JSP会被编译成以_jsp结尾的servlet文件,SpringBoot默认的Tomcat会将编译后的_JSP文件放在/tmp目录下,而该目录在Linux下是作为临时目录存在,会根据系统的运行对其/tmp下的文件进行清理,导致编译后的_jsp文件被清理,从而找不到该_jsp文件,当在某次访问找不到某个_jsp文件时,会先报一次异常,下次再访问时,Tomcat会重新编译,又会恢复正常。

三、解决方法

在application.properties文件增加Tomcat的工作目录配置,使其指向一个固定目录即可,这样配置以后有可以在更新了jsp文以后不会重新编译,此时只需要删除Tomcat工作目录下的文件即可,这里配置的Tomcat工作目录为/opt/tomcat_loacl

server.tomcat.basedir=/opt/tomcat_loacl
最近发表
标签列表