Advertisement

【idea】解决springboot项目中遇到的问题

阅读量:

一、Maven报错Could not find artifact com.mysql:mysql-connector-j:pom:unknown in aliyunmaven解决及分析

报错

创建springboot项目,勾选数据库驱动,springboot版本为3,现在改成了2.7.2,Maven就发生了报错Could not find artifact com.mysql:mysql-connector-j:pom:unknown in aliyunmaven

解决方法

(1)解决方法就是给mysql-connector-j指定版本

复制代码
     <dependency>

    
         <groupId>com.mysql</groupId>
    
         <artifactId>mysql-connector-j</artifactId>
    
         <version>8.0.33</version>
    
         <scope>runtime</scope>
    
     </dependency>
    
    
    
    

注意:因为这里使用的是8.0+版本的mysql驱动,所以在application.yaml中配置driver时要加cj

复制代码
 spring:

    
   datasource:
    
     driver-class-name: com.mysql.cj.jdbc.Driver
    
    
    
    

使用6.0以上的mysql驱动,jdbc.driver为com.mysql.cj.jdbc.Driver。

如果springboot的版本为3时则不会报这个错误。因为springboot3.0+的版本有对mysql驱动进行版本控制,所以不需要手动指定版本。而低版本的springboot没有对mysql驱动进行版本控制,所以需要手动指定版本,否则报错。

(2)修改了之后,不要忘记了还要修改这两个依赖的版本,

复制代码
     <dependency>

    
         <groupId>org.mybatis.spring.boot</groupId>
    
         <artifactId>mybatis-spring-boot-starter</artifactId>
    
         <version>2.2.2</version>
    
     </dependency>
    
     <dependency>
    
         <groupId>com.baomidou</groupId>
    
         <artifactId>mybatis-plus-boot-starter</artifactId>
    
         <version>3.5.2</version>
    
     </dependency>
    
    
    
    

二、报错Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'feedbackController' method

报错

原因

这个错误信息表明Spring Boot应用程序在启动时遇到了一些问题,特别是在创建requestMappingHandlerMapping bean时发生了错误。错误的具体原因是feedbackController类中的某个方法存在不明确的映射,导致Spring无法确定该如何处理请求映射。

解决方法

  1. 检查Controller中的映射注解: 确保Controller类中的每个请求映射(@RequestMapping@GetMapping@PostMapping等)都是唯一且明确的。避免多个方法使用相同的路径和HTTP方法组合。

确保没有重复的控制器映射 : 检查项目中是否存在多个控制器类使用了相同的请求路径和方法。例如,如果有两个控制器类都映射到相同的路径,这将导致冲突。

检查父类或接口中的映射 : 如果feedbackController继承了某个父类或实现了某个接口,检查这些父类或接口中是否存在重复的请求映射。

排查其他配置类 : 检查是否有其他配置类或组件可能影响了请求映射。确保它们没有定义与feedbackController冲突的请求映射。

查看错误信息的完整堆栈 : 错误信息中包含了具体的方法和类的详细信息,可以帮助更准确地定位问题。

使用Spring Boot的调试工具 : 可以启用Spring Boot的调试模式,通过添加spring.main.web-application-type=noneapplication.properties文件中,获得更详细的调试信息。

通过这些步骤,可以更准确地定位和解决Spring Boot应用程序中的请求映射冲突问题。如果有具体的代码片段或更多的错误堆栈信息,可以进一步提供来帮助更具体地解决问题。

通过检查之后,确实我的controller里有两个路径映射重复了,修改之后就不报这个错了。

三、knife4j报错Failed to introspect Class [com.github.xiaoymin.knife4j.spring.configuration

报错

复制代码
    Failed to introspect Class [com.github.xiaoymin.knife4j.spring.configuration
    

解决方法

(1)确认依赖项:确保 knife4j 的依赖已经正确添加到项目的构建配置中。

复制代码
     <!--swagger-->

    
     <dependency>
    
         <groupId>com.github.xiaoymin</groupId>
    
         <artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
    
         <version>4.4.0</version>
    
     </dependency>
    
    
    
    

下面是我的整个pom文件

复制代码
 <?xml version="1.0" encoding="UTF-8"?>

    
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    
     <modelVersion>4.0.0</modelVersion>
    
     <parent>
    
     <groupId>org.springframework.boot</groupId>
    
     <artifactId>spring-boot-starter-parent</artifactId>
    
     <version>2.7.2</version>
    
     <relativePath/> <!-- lookup parent from repository -->
    
     </parent>
    
     <groupId>com.water</groupId>
    
     <artifactId>demo</artifactId>
    
     <version>0.0.1-SNAPSHOT</version>
    
     <name>demo</name>
    
     <description>demo</description>
    
     <properties>
    
     <java.version>1.8</java.version>
    
     </properties>
    
     <dependencies>
    
     <dependency>
    
         <groupId>org.springframework.boot</groupId>
    
         <artifactId>spring-boot-starter-jdbc</artifactId>
    
     </dependency>
    
     <dependency>
    
         <groupId>org.springframework.boot</groupId>
    
         <artifactId>spring-boot-starter-web</artifactId>
    
     </dependency>
    
     <dependency>
    
         <groupId>org.mybatis.spring.boot</groupId>
    
         <artifactId>mybatis-spring-boot-starter</artifactId>
    
         <version>2.2.2</version>
    
     </dependency>
    
     <dependency>
    
         <groupId>com.baomidou</groupId>
    
         <artifactId>mybatis-plus-boot-starter</artifactId>
    
         <version>3.5.2</version>
    
     </dependency>
    
     <dependency>
    
         <groupId>com.mysql</groupId>
    
         <artifactId>mysql-connector-j</artifactId>
    
         <version>8.0.33</version>
    
         <scope>runtime</scope>
    
     </dependency>
    
     <dependency>
    
         <groupId>org.springframework.boot</groupId>
    
         <artifactId>spring-boot-starter-test</artifactId>
    
         <scope>test</scope>
    
     </dependency>
    
     <dependency>
    
         <groupId>org.mybatis.spring.boot</groupId>
    
         <artifactId>mybatis-spring-boot-starter-test</artifactId>
    
         <version>3.0.3</version>
    
         <scope>test</scope>
    
     </dependency>
    
     <dependency>
    
         <groupId>org.projectlombok</groupId>
    
         <artifactId>lombok</artifactId>
    
         <version>1.18.30</version>
    
     </dependency>
    
     <dependency>
    
         <groupId>cn.hutool</groupId>
    
         <artifactId>hutool-all</artifactId>
    
         <version>5.8.11</version>
    
     </dependency>
    
     <!--添加热部署-->
    
     <dependency>
    
         <groupId>org.springframework.boot</groupId>
    
         <artifactId>spring-boot-devtools</artifactId>
    
         <scope>runtime</scope>
    
         <optional>true</optional>
    
     </dependency>
    
     <!--swagger-->
    
     <dependency>
    
         <groupId>com.github.xiaoymin</groupId>
    
         <artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
    
         <version>4.4.0</version>
    
     </dependency>
    
     <!--gson数据-->
    
     <dependency>
    
         <groupId>com.google.code.gson</groupId>
    
         <artifactId>gson</artifactId>
    
         <version>2.9.1</version>
    
     </dependency>
    
     </dependencies>
    
  
    
     <build>
    
     <plugins>
    
         <plugin>
    
             <groupId>org.springframework.boot</groupId>
    
             <artifactId>spring-boot-maven-plugin</artifactId>
    
             <!--热部署配置-->
    
             <configuration>
    
                 <!--fork:如果没有该项配置,整个devtools不会起作用-->
    
                 <fork>true</fork>
    
                 <excludes>
    
                     <exclude>
    
                         <groupId>org.projectlombok</groupId>
    
                         <artifactId>lombok</artifactId>
    
                     </exclude>
    
                 </excludes>
    
             </configuration>
    
         </plugin>
    
     </plugins>
    
     </build>
    
  
    
 </project>
    
    
    
    

全部评论 (0)

还没有任何评论哟~