异常HandlerMethodArgumentResolversHolder

时间:2018-12-27 19:18:07

标签: spring spring-boot spring-data spring-integration spring-cloud

无法启动应用程序,但出现以下异常。

尝试升级Java和spring Boot父启动器时

 java.lang.IllegalStateException: Error processing condition on org.springframework.cloud.stream.config.BindingServiceConfiguration.bindingService
        at org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:64)
        at org.springframework.context.annotation.ConditionEvaluator.shouldSkip(ConditionEvaluator.java:108)
        at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForBeanMethod(ConfigurationClassBeanDefinitionReader.java:181)
        at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:141)
        at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader
Caused by: java.lang.NoClassDefFoundError: org/springframework/integration/config/HandlerMethodArgumentResolversHolder
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.getDeclaredMethods(Class.java:1975)
    at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:668)
    ... 39 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.springframework.integration.config.HandlerMethodArgumentResolversHolder
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 43 common frames omitted

pom.xml已升级了Spring Boot父启动器和Java

我是否需要为此添加其他Maven依赖项?

尝试添加spring-integration-core依赖会导致不同的异常。

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

        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <java.version>1.9</java.version>
            <springfox.version>2.6.0</springfox.version>
        </properties>


    <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-jersey</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>

            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
            </dependency>
            <dependency>
             <groupId>org.springframework.data</groupId>
             <artifactId>spring-data-redis</artifactId>

         </dependency>

            <!-- Circuit Breaker -->
            <dependency>
                <groupId>io.pivotal.spring.cloud</groupId>
                <artifactId>spring-cloud-services-starter-circuit-breaker</artifactId>
            </dependency>

            <!-- Registry & Discovery -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
            </dependency>

            <!-- For Config Server -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-config</artifactId>
            </dependency>

            <!-- spring reactor -->
            <dependency>
                <groupId>io.projectreactor</groupId>
                <artifactId>reactor-core</artifactId>
                <version>3.1.0.RELEASE</version>
            </dependency>

            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>1.9.3</version>
            </dependency>
                <dependency>
                <groupId>io.rest-assured</groupId>
                <artifactId>rest-assured</artifactId>
                <version>3.0.5</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest-core</artifactId>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>3.7</version>
            </dependency>
            <!-- Excel Generation -->
            <dependency>
                <groupId>org.jxls</groupId>
                <artifactId>jxls-reader</artifactId>
                <version>2.0.2</version>
            </dependency>

            <!--Common jar dependency -->

            <dependency>
                <groupId>net.minidev</groupId>
                <artifactId>json-smart</artifactId>
                <version>2.2.1</version>
            </dependency>

            <dependency>
                <groupId>io.lettuce</groupId>
                <artifactId>lettuce-core</artifactId>
                <version>5.1.1.RELEASE</version> 
            </dependency>
            <dependency>
                <groupId>biz.paluch.redis</groupId>
                <artifactId>lettuce</artifactId>
                <version>4.4.1.Final</version>
            </dependency>
        </dependencies>

        <dependencyManagement>
            <dependencies>
                <!-- <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-dependencies</artifactId>
                    <version>2.1.1.RELEASE</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency> -->
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>Finchley.SR2</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
                <dependency>
                    <groupId>io.pivotal.spring.cloud</groupId>
                    <artifactId>spring-cloud-services-dependencies</artifactId>
                    <version>1.3.1.RELEASE</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>

            </project>

3 个答案:

答案 0 :(得分:5)

您应该将Spring-cloud升级到Greenwich.RELEASE。您当前正在拉Finchley.SR2,这拉扯了与Spring Boot 2.1.x不兼容的错误流和SI依赖项。

答案 1 :(得分:1)

这似乎是问题所在:

  

Issue #1521 Incompatibility with spring-integration-core 5.1.0

     

当spring-boot从2.0.6升级到2.1.0时,会重现此问题   (spring-integration版本也已更新)

     

...

     

这是一个已知问题,除此以外,我们无能为力   确保特定版本的SCSt与特定版本兼容   其他库的发行版。使这种情况复杂化的是   从堆栈跟踪中可以看到,这种特殊的不兼容是   与spring-cloud-stream完全无关,而是spring-boot。也,   我们刚刚发布了基于构建的spring-cloud-stream 2.1.0.RC1   启动2.1.0.RELEASE。它使用SI 5.1.0.RELEASE。 --   https://spring.io/blog/2018/10/30/spring-cloud-stream-fishtown-rc1-2-1-0-rc1-release-announcement

     

所以我要解决这个问题。

这是一个类似的问题(也是Spring Boot的升级,也在Spring Cloud上):

https://github.com/spring-projects/spring-boot/issues/15088

建议:

  1. 尝试针对其他版本的Spring Boot进行构建。

  2. 如果可以,请发回您发现的内容。

答案 2 :(得分:0)

由以下版本发布

ext {
set('springCloudVersion', "Hoxton.SR8")

}

相关问题