Spring Boot没有Class发现错误,尽管starter依赖已在classpath中添加了类

时间:2018-02-02 19:28:00

标签: spring-boot noclassdeffounderror

enter image description here尽管在类路径中有适当的jar弹簧引发抛出 - java.lang.ClassNotFoundException:org.apache.camel.spring.spi.XmlCamelContextConfigurer

这里缺少什么建议。

我在pom.xml中添加了各自的启动器,如下所示:

    <dependency>
        <groupId>org.springframework.boot</groupId>[![enter image description here][1]][1]
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-cxf</artifactId>
        <version>2.19.3</version>
    </dependency>

项目maven依赖项还显示类可用性,如给定的图像附件。

1 个答案:

答案 0 :(得分:0)

答案就在这里 - https://stackoverflow.com/a/34271507/2885422这完全取决于maven如何加载课程。 classpath中有2个版本的camel-spring.jars(2.20.1和2.19.3。参考:我原来的帖子图片) org.apache.camel.spring.spi.XmlCamelContextConfigurer类仅在2.20.1罐中可用。并且默认情况下maven在前面的一个中查找并且一旦找到匹配的包但没有找到类抛出错误(?)

我相信2.19.3加载的原因是Apache-cxf jars是2.19.3。不幸的是,我们的项目存储库没有apache-cxf入门罐。

https://stackoverflow.com/a/34271507/2885422

解决方案: - 我希望它可能对将来的参考有所帮助 通过添加选项,我可以通过添加以下给出的排除子句来解决问题。因此,我只能加载所需的版本罐。

<dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-cxf</artifactId>
        <version>2.19.3</version>
        <exclusions>
            <exclusion>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-spring</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-core</artifactId>
            </exclusion>
        </exclusions>
    </dependency>'