Java17和springboot3.0使用shiro报ClassNotFoundException的解决

 更新时间:2024年04月12日 11:16:09   作者:星海蔚蓝  
本文主要介绍了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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 5个步骤让你明白多线程和线程安全

    5个步骤让你明白多线程和线程安全

    本文详细讲解了多线程和线程安全的实现,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • 学习不同 Java.net 语言中类似的函数结构

    学习不同 Java.net 语言中类似的函数结构

    这篇文章主要介绍了学习不同 Java.net 语言中类似的函数结构,函数式编程语言包含多个系列的常见函数。但开发人员有时很难在语言之间进行切换,因为熟悉的函数具有不熟悉的名称。函数式语言倾向于基于函数范例来命名这些常见函数。,需要的朋友可以参考下
    2019-06-06
  • 图数据库NebulaGraph的Java 数据解析实践与指导详解

    图数据库NebulaGraph的Java 数据解析实践与指导详解

    这篇文章主要介绍了图数据库NebulaGraph的Java 数据解析实践与指导详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Netty中序列化的作用及自定义协议详解

    Netty中序列化的作用及自定义协议详解

    这篇文章主要介绍了Netty中序列化的作用及自定义协议详解,Netty自身就支持很多种协议比如Http、Websocket等等,但如果用来作为自己的RPC框架通常会自定义协议,所以这也是本文的重点,需要的朋友可以参考下
    2023-12-12
  • Java8中的LocalDateTime你会使用了吗

    Java8中的LocalDateTime你会使用了吗

    LocalDateTime 是 Java 8 中日期时间 API 提供的一个类,在日期和时间的表示上提供了更加丰富和灵活的支持,本文就来讲讲LocalDateTime的一些具体使用方法吧
    2023-05-05
  • Spring Boot 3.2.5集成mysql的详细步骤记录

    Spring Boot 3.2.5集成mysql的详细步骤记录

    作为一名Java开发者,我们经常需要在我们的应用程序中使用数据库,在Spring Boot中集成数据库是非常容易的,下面这篇文章主要给大家介绍了关于Spring Boot 3.2.5集成mysql的详细步骤,需要的朋友可以参考下
    2024-04-04
  • Java中使用opencsv读写csv文件示例

    Java中使用opencsv读写csv文件示例

    这篇文章主要介绍了Java中使用opencsv读写csv文件示例,本文给出了读CSV文件、写CSV文件、自定义分隔符、生成Javabeans等内容,需要的朋友可以参考下
    2015-04-04
  • mybatis拦截器与分页插件实例教程

    mybatis拦截器与分页插件实例教程

    Mybatis拦截器常常会被用来进行分页处理。所以下面这篇文章主要给大家介绍了关于mybatis拦截器与分页插件的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用mybatis具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • springboot 使用websocket技术主动给前端发送消息的实现

    springboot 使用websocket技术主动给前端发送消息的实现

    这篇文章主要介绍了springboot 使用websocket技术主动给前端发送消息的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • 浅谈springmvc的DispatcherServlet分析

    浅谈springmvc的DispatcherServlet分析

    本篇文章主要介绍了浅谈springmvc的DispatcherServlet分析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09

最新评论