Java17和springboot3.0使用shiro报ClassNotFoundException的解决
环境:
- springboot 3.0.6
- java17
报错信息:java.lang.ClassNotFoundException: javax.servlet.Filter
当我看到javax时,估摸着应该是部分类库迁移到了jakarta造成的,但也不知道咋解决,最后在StackOverflow看到一篇回答,恍然大悟。
翻译如下:
由于Spring Boot 3.0 使用了Servlet 5.0,而javax.servlet此时已经迁移到了jakarta.servlet中。Shiro已经提供了适配Servlet 5.0 的依赖包,使用<classifier>标签即可选取适配版本,不过部分Shiro包中仍嵌套依赖了一些没有适配jakarta的依赖包,所以我们需要使用<exclude>将其排除,再引入同版本的jakarta适配包,就像这样做:
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<classifier>jakarta</classifier>
<version>1.11.0</version>
<!-- 排除仍使用了javax.servlet的依赖 -->
<exclusions>
<exclusion>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-web</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 引入适配jakarta的依赖包 -->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<classifier>jakarta</classifier>
<version>1.11.0</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-web</artifactId>
<classifier>jakarta</classifier>
<version>1.11.0</version>
<exclusions>
<exclusion>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
</exclusion>
</exclusions>
</dependency>到此这篇关于Java17和springboot3.0使用shiro报ClassNotFoundException的解决的文章就介绍到这了,更多相关shiro报ClassNotFoundException内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程
本文介绍了在Java中使用ModelMapper库简化Shapefile属性转JavaBean的过程,对比了原始的set方法和构造方法,展示了如何使用ModelMapper进行动态属性映射,从而减少手动编写转换代码的工作量,通过示例代码,展示了如何使用GeoTools读取Shapefile属性并将其转换为JavaBean对象2025-02-02
java校验String是否符合时间格式yyyy-MM-dd HH:mm:ss的几种方法
在实际项目开发中,跟时间参数打交道是必不可少的,为了保证程序的安全性、健壮性,一般都会对参数进行校验,这篇文章主要介绍了java校验String是否符合时间格式yyyy-MM-dd HH:mm:ss的几种方法,需要的朋友可以参考下2025-07-07
微服务如何通过feign.RequestInterceptor传递参数
这篇文章主要介绍了微服务如何通过feign.RequestInterceptor传递参数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-03-03
在 Spring Boot 中连接 MySQL 数据库的详细步骤
本文介绍了SpringBoot连接MySQL数据库的流程,添加依赖、配置连接信息、创建实体类与仓库接口,通过自动配置实现数据库操作,并提供API测试方法及常见问题解决方案,感兴趣的朋友跟随小编一起看看吧2025-08-08
java连接池Druid连接回收DestroyConnectionThread&DestroyTask
这篇文章主要为大家介绍了java连接池Druid连接回收DestroyConnectionThread&DestroyTask示例分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-09-09
SpringMvc/SpringBoot HTTP通信加解密的实现
这篇文章主要介绍了SpringMvc/SpringBoot HTTP通信加解密的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-08-08


最新评论