从 spring 引导 2.6.2 迁移到 2.6.6 后,得到 org.springframework.context.ApplicationContextException
After Migrating from spring boot 2.6.2 to 2.6.6 , getting org.springframework.context.ApplicationContextException
错误日志:
org.springframework.context.ApplicationContextException: Failed to
start bean 'inputBindingLifecycle'; nested exception is
java.lang.NoSuchMethodError:
java.util.List.of(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;
at
org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:181)
~[spring-context-5.3.18.jar:5.3.18] at
org.springframework.context.support.DefaultLifecycleProcessor.access0(DefaultLifecycleProcessor.java:54)
~[spring-context-5.3.18.jar:5.3.18] at
org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356)
~[spring-context-5.3.18.jar:5.3.18] at
java.lang.Iterable.forEach(Iterable.java:75) ~[na:1.8.0_202] at
org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155)
~[spring-context-5.3.18.jar:5.3.18] at
org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123)
~[spring-context-5.3.18.jar:5.3.18] at
org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:935)
~[spring-context-5.3.18.jar:5.3.18] at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586)
~[spring-context-5.3.18.jar:5.3.18] at
org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145)
~[spring-boot-2.6.6.jar:2.6.6] at
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:740)
[spring-boot-2.6.6.jar:2.6.6] at
org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:415)
[spring-boot-2.6.6.jar:2.6.6] at
org.springframework.boot.SpringApplication.run(SpringApplication.java:303)
[spring-boot-2.6.6.jar:2.6.6] at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1312)
[spring-boot-2.6.6.jar:2.6.6] at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1301)
[spring-boot-2.6.6.jar:2.6.6] at
com.walmart.ebs.people.system.payroll.data.sync.SpringBootApplicationStarter.main(SpringBootApplicationStarter.java:19)
[classes/:na] Caused by: java.lang.NoSuchMethodError:
java.util.List.of(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List;
at
org.springframework.integration.support.json.JacksonJsonUtils.(JacksonJsonUtils.java:58)
~[spring-integration-core-5.5.10.jar:5.5.10] at
org.springframework.integration.kafka.inbound.KafkaMessageDrivenChannelAdapter.(KafkaMessageDrivenChannelAdapter.java:139)
~[spring-integration-kafka-5.5.10.jar:5.5.10] at
org.springframework.cloud.stream.binder.kafka.KafkaMessageChannelBinder.createConsumerEndpoint(KafkaMessageChannelBinder.java:735)
~[spring-cloud-stream-binder-kafka-3.2.3.jar:3.2.3] at
org.springframework.cloud.stream.binder.kafka.KafkaMessageChannelBinder.createConsumerEndpoint(KafkaMessageChannelBinder.java:163)
~[spring-cloud-stream-binder-kafka-3.2.3.jar:3.2.3] at
org.springframework.cloud.stream.binder.AbstractMessageChannelBinder.doBindConsumer(AbstractMessageChannelBinder.java:426)
~[spring-cloud-stream-3.2.3.jar:3.2.3] at
org.springframework.cloud.stream.binder.AbstractMessageChannelBinder.doBindConsumer(AbstractMessageChannelBinder.java:92)
~[spring-cloud-stream-3.2.3.jar:3.2.3] at
org.springframework.cloud.stream.binder.AbstractBinder.bindConsumer(AbstractBinder.java:143)
~[spring-cloud-stream-3.2.3.jar:3.2.3] at
org.springframework.cloud.stream.binding.BindingService.doBindConsumer(BindingService.java:184)
~[spring-cloud-stream-3.2.3.jar:3.2.3] at
org.springframework.cloud.stream.binding.BindingService.bindConsumer(BindingService.java:137)
~[spring-cloud-stream-3.2.3.jar:3.2.3] at
org.springframework.cloud.stream.binding.AbstractBindableProxyFactory.createAndBindInputs(AbstractBindableProxyFactory.java:118)
~[spring-cloud-stream-3.2.3.jar:3.2.3] at
org.springframework.cloud.stream.binding.InputBindingLifecycle.doStartWithBindable(InputBindingLifecycle.java:58)
~[spring-cloud-stream-3.2.3.jar:3.2.3] at
java.util.LinkedHashMap$LinkedValues.forEach(LinkedHashMap.java:608)
~[na:1.8.0_202] at
org.springframework.cloud.stream.binding.AbstractBindingLifecycle.start(AbstractBindingLifecycle.java:57)
~[spring-cloud-stream-3.2.3.jar:3.2.3] at
org.springframework.cloud.stream.binding.InputBindingLifecycle.start(InputBindingLifecycle.java:34)
~[spring-cloud-stream-3.2.3.jar:3.2.3] at
org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178)
~[spring-context-5.3.18.jar:5.3.18] ... 14 common frames omitted
Process finished with exit code 1
升级到更高的 java 版本可能会有帮助。您的问题可能是您仍在使用 java 版本 < 9。我建议升级到 11 或 17 并再次尝试查看它是否解决了问题。
较新的 Spring 引导版本已升级 Spring 集成到 introduced a bug that accidentally added a dependency on Java 9. The Spring Integration documentation says Java 8 should be supported 版本 5.5.10。如果您升级到 Spring Boot 2.6.7,那么您将获得包含错误修复的 Spring 集成版本。
原来这个版本的 spring 引导有 spring-integration-core 版本 5.5.10,它有一个导致问题的错误,所以我不得不手动定义 spring 的版本pom 文件中的集成核心。 5.5.11 应该会解决这个问题
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-core</artifactId>
<version>5.5.11</version>
</dependency>
错误日志:
org.springframework.context.ApplicationContextException: Failed to start bean 'inputBindingLifecycle'; nested exception is java.lang.NoSuchMethodError: java.util.List.of(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List; at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:181) ~[spring-context-5.3.18.jar:5.3.18] at org.springframework.context.support.DefaultLifecycleProcessor.access0(DefaultLifecycleProcessor.java:54) ~[spring-context-5.3.18.jar:5.3.18] at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356) ~[spring-context-5.3.18.jar:5.3.18] at java.lang.Iterable.forEach(Iterable.java:75) ~[na:1.8.0_202] at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155) ~[spring-context-5.3.18.jar:5.3.18] at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123) ~[spring-context-5.3.18.jar:5.3.18] at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:935) ~[spring-context-5.3.18.jar:5.3.18] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586) ~[spring-context-5.3.18.jar:5.3.18] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) ~[spring-boot-2.6.6.jar:2.6.6] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:740) [spring-boot-2.6.6.jar:2.6.6] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:415) [spring-boot-2.6.6.jar:2.6.6] at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-2.6.6.jar:2.6.6] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312) [spring-boot-2.6.6.jar:2.6.6] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301) [spring-boot-2.6.6.jar:2.6.6] at com.walmart.ebs.people.system.payroll.data.sync.SpringBootApplicationStarter.main(SpringBootApplicationStarter.java:19) [classes/:na] Caused by: java.lang.NoSuchMethodError: java.util.List.of(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List; at org.springframework.integration.support.json.JacksonJsonUtils.(JacksonJsonUtils.java:58) ~[spring-integration-core-5.5.10.jar:5.5.10] at org.springframework.integration.kafka.inbound.KafkaMessageDrivenChannelAdapter.(KafkaMessageDrivenChannelAdapter.java:139) ~[spring-integration-kafka-5.5.10.jar:5.5.10] at org.springframework.cloud.stream.binder.kafka.KafkaMessageChannelBinder.createConsumerEndpoint(KafkaMessageChannelBinder.java:735) ~[spring-cloud-stream-binder-kafka-3.2.3.jar:3.2.3] at org.springframework.cloud.stream.binder.kafka.KafkaMessageChannelBinder.createConsumerEndpoint(KafkaMessageChannelBinder.java:163) ~[spring-cloud-stream-binder-kafka-3.2.3.jar:3.2.3] at org.springframework.cloud.stream.binder.AbstractMessageChannelBinder.doBindConsumer(AbstractMessageChannelBinder.java:426) ~[spring-cloud-stream-3.2.3.jar:3.2.3] at org.springframework.cloud.stream.binder.AbstractMessageChannelBinder.doBindConsumer(AbstractMessageChannelBinder.java:92) ~[spring-cloud-stream-3.2.3.jar:3.2.3] at org.springframework.cloud.stream.binder.AbstractBinder.bindConsumer(AbstractBinder.java:143) ~[spring-cloud-stream-3.2.3.jar:3.2.3] at org.springframework.cloud.stream.binding.BindingService.doBindConsumer(BindingService.java:184) ~[spring-cloud-stream-3.2.3.jar:3.2.3] at org.springframework.cloud.stream.binding.BindingService.bindConsumer(BindingService.java:137) ~[spring-cloud-stream-3.2.3.jar:3.2.3] at org.springframework.cloud.stream.binding.AbstractBindableProxyFactory.createAndBindInputs(AbstractBindableProxyFactory.java:118) ~[spring-cloud-stream-3.2.3.jar:3.2.3] at org.springframework.cloud.stream.binding.InputBindingLifecycle.doStartWithBindable(InputBindingLifecycle.java:58) ~[spring-cloud-stream-3.2.3.jar:3.2.3] at java.util.LinkedHashMap$LinkedValues.forEach(LinkedHashMap.java:608) ~[na:1.8.0_202] at org.springframework.cloud.stream.binding.AbstractBindingLifecycle.start(AbstractBindingLifecycle.java:57) ~[spring-cloud-stream-3.2.3.jar:3.2.3] at org.springframework.cloud.stream.binding.InputBindingLifecycle.start(InputBindingLifecycle.java:34) ~[spring-cloud-stream-3.2.3.jar:3.2.3] at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178) ~[spring-context-5.3.18.jar:5.3.18] ... 14 common frames omitted
Process finished with exit code 1
升级到更高的 java 版本可能会有帮助。您的问题可能是您仍在使用 java 版本 < 9。我建议升级到 11 或 17 并再次尝试查看它是否解决了问题。
较新的 Spring 引导版本已升级 Spring 集成到 introduced a bug that accidentally added a dependency on Java 9. The Spring Integration documentation says Java 8 should be supported 版本 5.5.10。如果您升级到 Spring Boot 2.6.7,那么您将获得包含错误修复的 Spring 集成版本。
原来这个版本的 spring 引导有 spring-integration-core 版本 5.5.10,它有一个导致问题的错误,所以我不得不手动定义 spring 的版本pom 文件中的集成核心。 5.5.11 应该会解决这个问题
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-core</artifactId>
<version>5.5.11</version>
</dependency>