Let me talk about the background first, because to use a springcloud component, springboot 2.1.17 must be upgraded to springboot 2.6.15 from the corresponding version.
first step
Replace parent
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.15</version>
</parent>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.8</version>
</dependency>
Those who are more stupid think that this is the end, start it directly and find an error.
org.springframework.core.metrics.ApplicationStartup
Faced with this error, I did the following:
- Check which package ApplicationStartup is under and import it.
-
Check the conflicts of the corresponding packages
But none of them can solve the problem very well because this problem occurs because there is a problem with the versions of springboot and springcloud. So I looked for the corresponding relationship between springboot and springcloud. The official website address is as follows Spring Cloud
Once you have an idea, make some changes accordingly: the steps are as follows:
- Delete the dependency of spring-context
2.Introduce the following packages
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2021.0.5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.1.5</version>
</dependency>
So far org.springframework.core.metrics.ApplicationStartup solved
- The error is reported again after restarting:
Caused by: java.lang.ClassNotFoundException: redis.clients.jedis.util.SafeEncoder
java.lang.NoClassDefFoundError: reactor/core/publisher/TopicProcessor
Correct the classpath of your application so that it contains a single, compatible version of org.springframework.data.redis.repository.configuration.RedisRepositoryConfigurationExtension
Wait for error
It was found that java-core was not introduced and there was a conflict in the redis version.
So re-add the pom file configuration
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.6.15</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.27</version>
</dependency>
The problem is solved, but it still takes a long time for these two packages to be introduced using maven. You can wait a little longer.