gpt4 book ai didi

java - 更正应用程序的类路径,使其包含 org.axonframework.eventsourcing.eventstore.jpa 的单个兼容版本

转载 作者:行者123 更新时间:2023-12-03 23:17:57 27 4
gpt4 key购买 nike

我正在处理 Spring Boot + Axon例子。关注 https://www.youtube.com/watch?v=lBKZOTe9QM4&list=PL4O1nDpoa5KTq5QKX9ueK-0QCJ-6Wm_ma来自 youtube 的链接并使用最新的依赖项。

如果我使用 axon-coreaxon-amqp版本到 3.0-RC1然后它工作正常。但是我使用 3.4 版本,然后在启动时出现以下错误。任何快速帮助?

***************************
APPLICATION FAILED TO START
***************************

Description:

An attempt was made to call the method org.axonframework.eventsourcing.eventstore.jpa.JpaEventStorageEngine.<init>(Lorg/axonframework/common/jpa/EntityManagerProvider;)V but it does not exist. Its class, org.axonframework.eventsourcing.eventstore.jpa.JpaEventStorageEngine, is available from the following locations:

jar:file:/C:/Users/user/.m2/repository/org/axonframework/axon-core/3.4/axon-core-3.4.jar!/org/axonframework/eventsourcing/eventstore/jpa/JpaEventStorageEngine.class

It was loaded from the following location:

file:/C:/Users/user/.m2/repository/org/axonframework/axon-core/3.4/axon-core-3.4.jar


Action:

Correct the classpath of your application so that it contains a single, compatible version of org.axonframework.eventsourcing.eventstore.jpa.JpaEventStorageEngine

pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.6.RELEASE</version>
<!-- <version>1.4.2.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.8</java.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.axonframework</groupId>
<artifactId>axon-spring-boot-starter</artifactId>
<version>3.0-RC1</version>
</dependency>

<dependency>
<groupId>org.axonframework</groupId>
<artifactId>axon-amqp</artifactId>
<!-- <version>3.0-RC1</version> -->
<version>3.4</version>
</dependency>
<dependency>
<groupId>org.axonframework</groupId>
<artifactId>axon-core</artifactId>
<!-- <version>3.0-RC1</version> -->
<version>3.4</version>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</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> -->
</dependencies>

DemoComplaintsApplication.java
@SpringBootApplication
public class DemoComplaintsApplication {

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

@RestController
public static class ComplaintAPI {

private final ComplaintQueryObjectRepository repostory;
private final CommandGateway commandGateway;

public ComplaintAPI(ComplaintQueryObjectRepository repostory, CommandGateway commandGateway) {
this.repostory = repostory;
this.commandGateway = commandGateway;
}

@PostMapping
public CompletableFuture<String> fileCompplaint(@RequestBody Map<String, String> request) {
String id = UUID.randomUUID().toString();
return commandGateway
.send(new FileComplaintCommand(id, request.get("company"), request.get("description")));
}

@GetMapping
public List<ComplaintQueryObject> findAll() {
return repostory.findAll();
}

@GetMapping("/{id}")
public ComplaintQueryObject find(@PathVariable String id) {
//return repostory.findOne(id);
return repostory.findById(id).get();
}
}

@Aggregate
public static class Complaint {
@AggregateIdentifier
private String complaintId;

public Complaint() {
}

@CommandHandler
public Complaint(FileComplaintCommand command) {
apply(new ComplaintFileEvent(command.getId(), command.getCompany(), command.getDescription()));
}

@EventSourcingHandler
public void on(ComplaintFileEvent event) {
this.complaintId = event.getId();
}
}

@Component
public static class ComplaintQueryObjectUpdater {

private final ComplaintQueryObjectRepository repository;

public ComplaintQueryObjectUpdater(ComplaintQueryObjectRepository repository) {
this.repository = repository;
}

@EventHandler
public void on(ComplaintFileEvent event) {
repository.save(new ComplaintQueryObject(event.getId(), event.getCompany(), event.getDescription()));
}
}

public static class FileComplaintCommand {
@TargetAggregateIdentifier
private String id;
private String company;
private String description;

public FileComplaintCommand(String id, String company, String description) {
super();
this.id = id;
this.company = company;
this.description = description;
}

public String getId() {
return id;
}

public String getCompany() {
return company;
}

public String getDescription() {
return description;
}
}
}

最佳答案

这是问题:

    <dependency>
<groupId>org.axonframework</groupId>
<artifactId>axon-spring-boot-starter</artifactId>
<version>3.0-RC1</version>
</dependency>

应该:
    <dependency>
<groupId>org.axonframework</groupId>
<artifactId>axon-spring-boot-starter</artifactId>
<version>3.4</version>
</dependency>

因为您将 axon 库升级到 v3.4。

关于java - 更正应用程序的类路径,使其包含 org.axonframework.eventsourcing.eventstore.jpa 的单个兼容版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53139869/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com