【问题标题】:Incompatible spring boot version causing application to not start up. How can we identify the wrong version included in the pom不兼容的 Spring Boot 版本导致应用程序无法启动。我们如何识别 pom 中包含的错误版本
【发布时间】:2021-01-22 17:08:22
【问题描述】:

我有以下 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>com.cnt.orchtn</groupId>
        <artifactId>orchtn-parent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath>../orchtn-parent/pom.xml</relativePath>

    </parent>

    <groupId>com.dsfsdaf.orchtn</groupId>
    <artifactId>orchen-con-service</artifactId>
    <version>1.0-RELEASE</version>
    <name>OrchServi</name>
    <description>Orch</description>
    
    <properties>
        <java.version>11</java.version>
        <camel.version>3.1.0</camel.version>
        <jackson.version>1.9.13</jackson.version>
        <kafka.version>2.6.0</kafka.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.apache.camel.springboot</groupId>
            <artifactId>camel-spring-boot-starter</artifactId>
            <version>3.1.0</version>
        </dependency>
        <!-- <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.2.6.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>2.2.6.RELEASE</version>
        </dependency> -->

        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-jackson</artifactId>
            <version>3.1.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.camel.springboot</groupId>
            <artifactId>camel-kafka-starter</artifactId>
            <version>3.1.0</version>
        </dependency>
    <!--    <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-clients</artifactId>
            <version>${kafka.version}</version>
        </dependency> -->

        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-http</artifactId>
            <version>3.1.0</version>
            <!-- use the same version as your Camel core version -->
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
             <!--  <version>2.10.0</version> -->
             <version>2.11.3</version> 
        </dependency>

        <!-- <dependency>
            <groupId>org.junit.vintage</groupId>
            <artifactId>junit-vintage-engine</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>
        <dependency> 
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>-->

        <!-- https://mvnrepository.com/artifact/org.json/json -->
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20200518</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
        <!-- This dependency is for WebClient implementation -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webflux</artifactId>
            <version>2.3.4.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>com.googlecode.json-simple</groupId>
            <artifactId>json-simple</artifactId>
            <version>1.1.1</version>
        </dependency>

        <dependency>
            <groupId>com.bazaarvoice.jolt</groupId>
            <artifactId>jolt-core</artifactId>
            <version>0.0.17</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.11.3</version>
        </dependency>


        <dependency>
            <groupId>com.bazaarvoice.jolt</groupId>
            <artifactId>json-utils</artifactId>
            <version>0.0.10</version>
        </dependency>

        <!-- <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
        </dependency> -->

    </dependencies>
    <repositories>
        <repository>
            <id>cnc-clng-srd-cbf-artifactory--cnc-clng-srd-cbf-artifactory</id>
            <name>cnc-clng-srd-cbf-artifactory--cnc-clng-srd-cbf-artifactory</name>
            <url>https://cnc-clng-srd-cbf-artifactory-255474220078.d.codeartifact.us-east 
                        1.amazonaws.com/maven/cnc-clng-srd-cbf-artifactory/</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>Maven-Artifactory-Plugin</id>
            <url>https://jcenter.bintray.com</url>
        </pluginRepository>
    </pluginRepositories>
    
    <distributionManagement>
        <repository>
            <id>cnc-clng-srd-cbf-artifactory--cnc-clng-srd-cbf-artifactory</id>
            <name>cnc-clng-srd-cbf-artifactory--cnc-clng-srd-cbf-artifactory</name>
            <url>https://cnc-clng-srd-cbf-artifactory-255474220078.d.codeartifact.us-east
                 1.amazonaws.com/maven/cnc-clng-srd-cbf-artifactory/</url>
        </repository>
    </distributionManagement>

    <build>
        <plugins>
        <!-- <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>

                <configuration>
                    <source>11</source>
                    <target>11</target>
                </configuration>
                </plugin> -->
                
                
            <!-- <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin> -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M5</version>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>

        </plugins>
    </build>

</project>


I have the parent pom in the following format:

<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.cnt.orctr</groupId>
    <artifactId>orctr-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <description>Orch Parent</description>
    <packaging>pom</packaging>

    <url>http://maven.apache.org</url>
    <properties>
        <java.version>11</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>




        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <version>2.2.6.RELEASE</version>
            </dependency>

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
                <version>2.2.6.RELEASE</version>
            </dependency>

            <dependency>
                <groupId>javax.validation</groupId>
                <artifactId>validation-api</artifactId>
                <version>2.0.1.Final</version>
            </dependency>

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
                <version>2.4.0</version>
            </dependency>
            <dependency>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
                <scope>test</scope>
                <version>5.7.0</version>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <scope>test</scope>
                <version>3.6.0</version>
            </dependency>

            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>3.11</version>
            </dependency>

            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.6</version>
            </dependency>

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-validation</artifactId>
                <version>2.3.4.RELEASE</version>
            </dependency>

        </dependencies>

    <repositories>
        <repository>
            <id>cnc-clng-srd-cbf-artifactory--cnc-clng-srd-cbf-artifactory</id>
            <name>cnc-clng-srd-cbf-artifactory--cnc-clng-srd-cbf-artifactory</name>
            <url>https://cnc-clng-srd-cbf-artifactory-255474220078.d.codeartifact.us-east-1.amazonaws.com/maven/cnc-clng-srd-cbf-artifactory/</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>Maven-Artifactory-Plugin</id>
            <url>https://jcenter.bintray.com</url>
        </pluginRepository>
    </pluginRepositories>
    <distributionManagement>

        <repository>

            <id>cnc-clng-srd-cbf-artifactory--cnc-clng-srd-cbf-artifactory</id>

            <name>cnc-clng-srd-cbf-artifactory--cnc-clng-srd-cbf-artifactory</name>

            <url>https://cnc-clng-srd-cbf-artifactory-255474220078.d.codeartifact.us-east-1.amazonaws.com/maven/cnc-clng-srd-cbf-artifactory/</url>

        </repository>

    </distributionManagement>
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.7.0</version>
                    <configuration>
                        <source>11</source>
                        <target>11</target>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>2.4</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.4</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>2.1.2</version>
                </plugin>
                <plugin>
                    <groupId>org.jfrog.buildinfo</groupId>
                    <artifactId>artifactory-maven-plugin</artifactId>
                    <version>3.0.0</version>
                    <inherited>false</inherited>
                    <executions>
                        <execution>
                            <id>build-info</id>
                            <goals>
                                <goal>publish</goal>
                            </goals>
                            <configuration>
                                <artifactory>
                                    <includeEnvVars>true</includeEnvVars>
                                    <envVarsExcludePatterns>*password*,*secret*,*key*,*token*,*passphrase*</envVarsExcludePatterns>
                                    <timeoutSec>60</timeoutSec>
                                </artifactory>
                                <publisher>
                                    <contextUrl>https://cnc-clng-srd-cbf-artifactory-255474220078.d.codeartifact.us-east-1.amazonaws.com/maven/cnc-clng-srd-cbf-artifactory/</contextUrl>
                                    <username>aws</username>
                                    <password>${env.CODEARTIFACT_AUTH_TOKEN}</password>
                                    <repoKey>libs-release-local</repoKey>
                                    <snapshotRepoKey>libs-snapshot-local</snapshotRepoKey>
                                </publisher>
                                <!-- <buildInfo> <buildName>centene-framework</buildName> <buildNumber>${buildnumber}</buildNumber> 
                                    <buildUrl>http://build-url.org</buildUrl> </buildInfo> -->
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <configuration>
                        <archive>
                            <addMavenDescriptor>false</addMavenDescriptor>
                        </archive>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <configuration>
                        <archive>
                            <addMavenDescriptor>false</addMavenDescriptor>
                        </archive>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

</project>

当我运行应用程序时,我得到以下信息:

应用程序启动失败


说明:

试图调用一个不存在的方法。尝试是从以下位置进行的:

org.springframework.boot.actuate.autoconfigure.startup.StartupEndpointAutoConfiguration$ApplicationStartupCondition.getMatchOutcome(StartupEndpointAutoConfiguration.java:63)

以下方法不存在:

org.springframework.beans.factory.config.ConfigurableListableBeanFactory.getApplicationStartup()Lorg/springframework/core/metrics/ApplicationStartup;

该方法的类 org.springframework.beans.factory.config.ConfigurableListableBeanFactory 可从以下位置获得:

jar:file:/C:/Users/cn249124/.m2/repository/org/springframework/spring-beans/5.2.9.RELEASE/spring-beans-5.2.9.RELEASE.jar!/org/springframework/beans/factory/config/ConfigurableListableBeanFactory.class

它是从以下位置加载的:

file:/C:/Users/cn249124/.m2/repository/org/springframework/spring-beans/5.2.9.RELEASE/spring-beans-5.2.9.RELEASE.jar

【问题讨论】:

  • 我确信我在父版本中的依赖版本与子 pom 冲突。弹簧引导启动器 3.1.0。我在哪里可以找到我应该在我的子 pom 中包含的版本和依赖 pom 以及在父 pom 中包含哪些依赖项
  • 我的意思是父 pom 中的版本似乎与 spring-boot-starter-3.1.0 产生了问题,我可以验证哪些版本兼容以及需要存在的任何站点在父 pom 中,不需要什么。我也通过 dependencyManagement 尝试了 bom 依赖。这也造成了一个问题
  • start.spring.io - 在这里你可以创建 spring 项目并选择你想要的 SB 版本,它会选择兼容的 Camel 版本。此外,您正在使用 v3.1 的旧 EOL 版本的 Camel
  • 您正在混合不同的 Spring Boot 版本....清理您的 pom 文件并仅使用一个版本...

标签: java spring spring-boot maven apache-camel


【解决方案1】:

有关使用 Camel Spring Boot 的信息,请参阅此页面: https://camel.apache.org/camel-spring-boot/latest/

在这里,您可以使用 camel-spring-boot-bom 为您挑选所有兼容版本。这也是骆驼弹簧靴示例显示的内容: https://github.com/apache/camel-spring-boot-examples

【讨论】:

    猜你喜欢
    • 2020-06-20
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 2022-07-01
    • 2019-11-12
    • 1970-01-01
    • 2016-05-08
    • 1970-01-01
    相关资源
    最近更新 更多