首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >尝试运行jar时出现NoClassDefFoundError

尝试运行jar时出现NoClassDefFoundError
EN

Stack Overflow用户
提问于 2018-04-20 00:26:27
回答 1查看 1.1K关注 0票数 2

我的代码编译得很好,但是当我尝试运行Jar时,在堆栈跟踪中得到以下错误

代码语言:javascript
复制
java.lang.IllegalStateException: Error processing condition on org.springframework.cloud.stream.config.codec.kryo.KryoCodecAutoConfiguration
Caused by: java.lang.IllegalStateException: Failed to introspect Class [org.springframework.cloud.stream.config.ChannelBindingAutoConfiguration] from ClassLoader       [org.springframework.boot.loader.LaunchedURLClassLoader@439f5b3d]

Caused by: java.lang.NoClassDefFoundError: org/springframework/boot/actuate/endpoint/AbstractEndpoint
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.actuate.endpoint.AbstractEndpoint

我也在我的pom.xml中添加了执行器作为依赖项。以下是所有依赖项:

代码语言:javascript
复制
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-amqp</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka-streams</artifactId>
        <version>1.0.1</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
</dependencies>

我遗漏了什么?会不会是因为我使用的是spring boot版本?

代码语言:javascript
复制
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.1.RELEASE</version>
</parent>

我还想知道这个执行器是从哪里来的,因为我在这个虚拟项目中只有两个类。

代码语言:javascript
复制
package demo.example.jobIDProcessor;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.cloud.stream.messaging.Processor;
import org.springframework.integration.annotation.Transformer;
@EnableBinding(Processor.class)
@SpringBootApplication
public class JobIDProcessorApplication {

 @Transformer(inputChannel = Processor.INPUT, outputChannel = Processor.OUTPUT)
    public String fetchJD(String jobID) {
        return "ye raha JD of "+jobID;
    }

public static void main(String[] args) {
    SpringApplication.run(JobIDProcessorApplication.class, args);
}
}

以及以下内容

代码语言:javascript
复制
package demo.example.jobIDProcessor;

import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.cloud.stream.messaging.Processor;
import org.springframework.integration.annotation.Transformer;


@EnableBinding(Processor.class)
public class JobIDProcessorConfig {
 @Transformer(inputChannel = Processor.INPUT, outputChannel = Processor.OUTPUT)
    public String fetchJD(String jobID) {
        return "ye raha JD of "+jobID;
    }
}

这个"org/springframework/boot/actuate/endpoint/AbstractEndpoint“是从哪里被调用的?

EN

回答 1

Stack Overflow用户

发布于 2018-05-31 17:51:23

这主要与您使用的云流依赖版本有关。请尝试在pom.xml中添加以下内容

代码语言:javascript
复制
 <dependencyManagement>
    <dependencies>
        <dependency>
            <!-- Import dependency management from Spring Boot -->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-stream-dependencies</artifactId>
            <version>Fishtown.BUILD-SNAPSHOT</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
<repositories>
    <repository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>https://repo.spring.io/libs-snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

这将指向最新版本的cloud-stream-dependencies,该版本指的是执行程序的正确版本

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49925942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档