春季启动jsp:java.lang.NoClassDefFoundError:org/apache/tomcat/util/security/Escape

Posted

技术标签:

【中文标题】春季启动jsp:java.lang.NoClassDefFoundError:org/apache/tomcat/util/security/Escape【英文标题】:spring boot jsp : java.lang.NoClassDefFoundError: org/apache/tomcat/util/security/Escape 【发布时间】:2018-10-22 07:58:32 【问题描述】:

我正在尝试在我的 Spring Boot 应用程序中添加一个简单的 jsp 渲染。

@Controller
public class WelcomeController     
    @RequestMapping("/index")
    public String loginMessage()
        return "index";
    

解析器

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

和/src/main/webapp/WEB-INF/jsp/index.jsp

我添加了 sprng boot web stater 和 tomcat embed

compile('org.springframework.boot:spring-boot-starter-web')
compile('org.apache.tomcat.embed:tomcat-embed-jasper')

我遇到了这个问题

May 11, 2018 3:54:53 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [java.lang.NoClassDefFoundError: org/apache/tomcat/util/security/Escape] with root cause
java.lang.ClassNotFoundException: org.apache.tomcat.util.security.Escape

【问题讨论】:

【参考方案1】:

我通过使用 compileOnly 解决了这个问题

compile('org.springframework.boot:spring-boot-starter-web')
compileOnly('org.apache.tomcat.embed:tomcat-embed-jasper')

仅编译类似于 maven 中提供的范围。

【讨论】:

以上是关于春季启动jsp:java.lang.NoClassDefFoundError:org/apache/tomcat/util/security/Escape的主要内容,如果未能解决你的问题,请参考以下文章

春季安全。授权在jsp上不起作用

在同一场战争中防止春季会话覆盖

IndexOutOfBoundsException 春季批处理和春季启动

Thymeleaf 或 JSP:Spring Boot 哪个更好?

春季启动批处理到具有多个作业的春季云任务

春季启动 DispatcherServlet