笔者今日创建一个Spring Boot 项目准备做产品,基于IDEA搭建是非常容易的,但是万万没想到,居然一切顺理成章的创建之后,运行报错,非常痛惜,错误截图如下:

核心错误:

Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException

测试经过:

检查之前创建的框架结构,检查各种注解及相关代码,都正常,应该是没有问题的。

把之前创建的Swagger2依赖移除,因为就这块代码配置是最后一步,想着从后往前的测试方法检查,至于这是什么,不必多讲,非常出名了,不过我还是喜欢2.7.0旧版,最新的应该2.9.2吧,比较扁平化点。

 <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.7.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.7.0</version>
        </dependency>

        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>swagger-bootstrap-ui</artifactId>
            <version>1.9.6</version>
        </dependency>

把依赖和相关的配置代码移除后,运行项目一切正常,看来应该是出在配置Swagger的配置上了。

解决办法:

经过一番对比估计是最新创建的项目部分库内部依赖存在冲突,因为一个月之前同样创建的项目配置Swagger就没有问题,最终发现确实如此:

在创建项目时版本有异同,我们从pom.xml文件中查看如下:

 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

而一个月之前创建的项目如下:

 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.6</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

很明显,版本已经从 2.5.6 变成了 2.6.0,因为创建Spring Boot 是如下图所示的在线方式:

至于其中的区别,笔者也没有时间来研究,就很任性的把 2.6.0 改为 2.5.6,再把Swagger的相关依赖和配置代码还原,重新运行项目成功,如下图:

后话:这个问题笔者也试图去解释,可惜没有很好的解决方案或雷同报错,所以如果有同笔者一样错误的,可临时修改一下版本号,让项目先跑起来吧。

============================

补丁:2022-07-01

笔者所遇到问题,已有热心朋友(chenthe1的博客_CSDN博客-golang,Mysql,rpc领域博主)解决,首先非常感谢这位同行的方案,截图如下:

 解决方案:

原因: 这是因为Springfox使用的路径匹配是基于AntPathMatcher的,而Spring Boot 2.6.X使用的是PathPatternMatcher。
解决:在application.properties里配置:spring.mvc.pathmatch.matching-strategy=ANT_PATH_MATCHER。

或yml配置:
mvc:
pathmatch:
matching-strategy: ANT_PATH_MATCHER

============================

推荐:如果想学习Spring Boot搭建项目或感兴趣想尝试的新手,笔者力荐这套课程:Spring Boot入门初体验--Java视频教程-编程语言-CSDN程序员研修院

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐