当前位置:   article > 正文

Java java.lang.ClassNotFoundException: xxx问题2种情况解决(Spring Boot、Swagger)_springboot java.lang.classnotfoundexception:

springboot java.lang.classnotfoundexception:

1 问题描述

        java.lang.ClassNotFoundException: testTask

2 问题分析

2.1 Spring Boot

1、使用Class.forName(beanName).newInstance()创建实例,但是beanName不是包名加类名,而是Spring里面的@Component("testTask")实例名。

解决办法:

  1. public Object getBean(String beanName){
  2. Object bean = null;
  3. if (beanName.indexOf(".") < 0) {
  4. //bean名为自定义的实例名@Component
  5. bean = SpringUtil.getBean(beanName);
  6. } else {
  7. //bean名带包名路径
  8. bean = Class.forName(beanName).newInstance();
  9. }
  10. }

注:

        SpringUtil.getBean()方法源码请查看以下博客。

 Quartz 实现数据库配置定时任务https://blog.csdn.net/qq_38974638/article/details/114962987

2.2 Swagger

1、Swagger 3使用第三方的Swagger UI插件(swagger-bootstrap-ui),因为swagger-bootstrap-ui只支持Swagger 2,导致报错。

  1. <!-- Swagger 3 API接口调试工具 -->
  2. <dependency>
  3. <groupId>io.springfox</groupId>
  4. <artifactId>springfox-boot-starter</artifactId>
  5. <version>3.0.0</version>
  6. </dependency>
  7. <!-- 引入swagger-bootstrap-ui包 /doc.html-->
  8. <dependency>
  9. <groupId>com.github.xiaoymin</groupId>
  10. <artifactId>swagger-bootstrap-ui</artifactId>
  11. <version>1.9.1</version>
  12. </dependency>

问题解决:

        (1)将Swagger 3改为Swagger 2,swagger-bootstrap-ui依赖不变。

  1. <!-- Swagger 2 API接口调试工具 -->
  2. <dependency>
  3. <groupId>io.springfox</groupId>
  4. <artifactId>springfox-swagger2</artifactId>
  5. <version>2.9.2</version>
  6. </dependency>
  7. <!--这个swagger-ui是官方提供的一个前端页面,用来查看并导出生成的api文档-->
  8. <dependency>
  9. <groupId>io.springfox</groupId>
  10. <artifactId>springfox-swagger-ui</artifactId>
  11. <version>2.9.2</version>
  12. </dependency>
  13. <!-- 引入swagger-bootstrap-ui包 /doc.html-->
  14. <dependency>
  15. <groupId>com.github.xiaoymin</groupId>
  16. <artifactId>swagger-bootstrap-ui</artifactId>
  17. <version>1.9.1</version>
  18. </dependency>

        (2)Swagger 3依赖不变,swagger-bootstrap-ui依赖改为knife4j-spring-boot-starter依赖,因为knife4j是swagger-bootstrap-ui的升级版,支持Swagger 3。

  1. <!-- Swagger 3 API接口调试工具 -->
  2. <dependency>
  3. <groupId>io.springfox</groupId>
  4. <artifactId>springfox-boot-starter</artifactId>
  5. <version>3.0.0</version>
  6. </dependency>
  7. <!-- 引入knife4j-spring-ui包 /doc.html-->
  8. <dependency>
  9. <groupId>com.github.xiaoymin</groupId>
  10. <artifactId>knife4j-spring-boot-starter</artifactId>
  11. <version>3.0.3</version>
  12. </dependency>

旭东怪的个人空间_哔哩哔哩_Bilibili旭东怪,人生低谷不可怕,可怕的是坚持不到人生转折点的那一天;旭东怪的主页、动态、视频、专栏、频道、收藏、订阅等。哔哩哔哩Bilibili,你感兴趣的视频都在B站。https://space.bilibili.com/484264966?spm_id_from=333.337.search-card.all.click

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/68858
推荐阅读
相关标签
  

闽ICP备14008679号