【问题标题】:Spring Boot java.lang.NoClassDefFoundErrorSpring Boot java.lang.NoClassDefFoundError
【发布时间】:2015-07-03 12:15:47
【问题描述】:

我的 spring-boot 应用程序有问题,因为我在使用 Jar 下一个 maven 构建时无法启动它。但我可以在我的 IDE 中启动它...

例外是:

java.lang.ClassNotFoundException: org.springframework.data.repository.CrudRepository

我的 POM.XML

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.2.5.RELEASE</version>
    </parent>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-ws</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

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


        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>${cxf.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http</artifactId>
            <version>${cxf.version}</version>
        </dependency>

        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>18.0</version>
        </dependency>

        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0</version>
        </dependency>

    </dependencies>

   <build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

当我查看 jar 文件时,我有一个文件夹 lib/,其中包含 spring-boot-start-data-jpa-1.2.5.RELEASE.jar 所以我不明白为什么 jar 找不到 CrudRepository ...

有什么想法吗? 非常感谢

编辑

我在 jar 内容中的 lib 文件夹:

antlr-2.7.7.jar
aopalliance-1.0.jar
asm-3.3.1.jar
aspectjrt-1.8.6.jar
aspectjweaver-1.8.6.jar
classmate-1.0.0.jar
cxf-core-3.0.3.jar
cxf-rt-bindings-soap-3.0.3.jar
cxf-rt-bindings-xml-3.0.3.jar
cxf-rt-databinding-jaxb-3.0.3.jar
cxf-rt-frontend-jaxws-3.0.3.jar
cxf-rt-frontend-simple-3.0.3.jar
cxf-rt-transports-http-3.0.3.jar
cxf-rt-ws-addr-3.0.3.jar
cxf-rt-ws-policy-3.0.3.jar
cxf-rt-wsdl-3.0.3.jar
dom4j-1.6.1.jar
guava-18.0.jar
hibernate-commons-annotations-4.0.5.Final.jar
hibernate-core-4.3.10.Final.jar
hibernate-entitymanager-4.3.10.Final.jar
hibernate-jpa-2.1-api-1.0.0.Final.jar
hibernate-validator-5.1.3.Final.jar
jackson-annotations-2.4.6.jar
jackson-core-2.4.6.jar
jackson-databind-2.4.6.jar
jandex-1.1.0.Final.jar
javassist-3.18.1-GA.jar
javax.transaction-api-1.2.jar
jaxb-core-2.2.10-b140310.1920.jar
jaxb-impl-2.2.10-b140310.1920.jar
jboss-logging-3.1.3.GA.jar
jboss-logging-annotations-1.2.0.Beta1.jar
jcl-over-slf4j-1.7.12.jar
jul-to-slf4j-1.7.12.jar
log4j-over-slf4j-1.7.12.jar
logback-classic-1.1.3.jar
logback-core-1.1.3.jar
neethi-3.0.3.jar
ojdbc6-11.2.0.jar
slf4j-api-1.7.12.jar
snakeyaml-1.14.jar
spring-aop-4.1.7.RELEASE.jar
spring-aspects-4.1.7.RELEASE.jar
spring-beans-4.1.7.RELEASE.jar
spring-boot-1.2.5.RELEASE.jar
spring-boot-autoconfigure-1.2.5.RELEASE.jar
spring-boot-starter-1.2.5.RELEASE.jar
spring-boot-starter-aop-1.2.5.RELEASE.jar
spring-boot-starter-data-jpa-1.2.5.RELEASE.jar
spring-boot-starter-jdbc-1.2.5.RELEASE.jar
spring-boot-starter-logging-1.2.5.RELEASE.jar
spring-boot-starter-tomcat-1.2.5.RELEASE.jar
spring-boot-starter-web-1.2.5.RELEASE.jar
spring-boot-starter-ws-1.2.5.RELEASE.jar
spring-context-4.1.7.RELEASE.jar
spring-core-4.1.7.RELEASE.jar
spring-data-commons-1.9.3.RELEASE.jar
spring-data-jpa-1.7.3.RELEASE.jar
spring-expression-4.1.7.RELEASE.jar
spring-jdbc-4.1.7.RELEASE.jar
spring-jms-4.1.7.RELEASE.jar
spring-messaging-4.1.7.RELEASE.jar
spring-orm-4.1.7.RELEASE.jar
spring-oxm-4.1.7.RELEASE.jar
spring-tx-4.1.7.RELEASE.jar
spring-web-4.1.7.RELEASE.jar
spring-webmvc-4.1.7.RELEASE.jar
spring-ws-core-2.2.1.RELEASE.jar
spring-ws-support-2.2.1.RELEASE.jar
spring-xml-2.2.1.RELEASE.jar
stax2-api-3.1.4.jar
tomcat-embed-core-8.0.23.jar
tomcat-embed-el-8.0.23.jar
tomcat-embed-logging-juli-8.0.23.jar
tomcat-embed-websocket-8.0.23.jar
tomcat-jdbc-8.0.23.jar
tomcat-juli-8.0.23.jar
validation-api-1.1.0.Final.jar
woodstox-core-asl-4.4.1.jar
wsdl4j-1.6.3.jar
xml-apis-1.0.b2.jar
xml-resolver-1.2.jar
xmlschema-core-2.1.0.jar

【问题讨论】:

  • 设置jar范围为compile?
  • 我在 spring-boot-starter-data-jpa 上编译范围时遇到了同样的问题。谢谢

标签: spring maven spring-boot


【解决方案1】:

我终于解决了我的问题。

我正在使用 Guava 查找由 @WebService 注释的所有类,然后我创建了 bean。但是所有的bean都没有加载。所以我现在使用 ClassPathScanningCandidateComponentProvider 在 Spring 停止创建 bean 时休眠。

感谢您的回答

【讨论】:

    猜你喜欢
    • 2020-09-25
    • 2017-09-04
    • 1970-01-01
    • 2015-06-17
    • 2017-06-14
    • 2020-05-20
    • 2020-02-13
    • 2022-08-22
    • 2022-12-22
    相关资源
    最近更新 更多