AXONIQ-4002 在 Spring Boot 中使用 Axon Framework 时出错

问题描述

我正在从我的休息控制器调用 CommandGateway.send 方法,但控件没有进入 Aggregate 类,并且在 5 分钟后 500 内部服务器错误即将到来。 当我调试应用程序时,我发现 Axon 引发了以下错误 ->

AxonServerRemoteCommandHandlingException{message=远程消息处理组件抛出异常:,errorCode='AXONIQ-4002',server=''}

以下是我的 Java 文件

Rest 控制器 ->

@RestController
@RequestMapping("/product")
public class ProductController {

@Autowired
private CommandGateway gateway;

@PostMapping
public ResponseEntity createProduct(@RequestBody CreateProductModel model) {
    
    CreateProductCommand command=CreateProductCommand.builder()
            .price("$123")
            .productId(UUID.randomUUID().toString())
            .product("Shoe")
            .build();
    
    String s=gateway.sendAndWait(command);
    
    return new ResponseEntity<String>(HttpStatus.CREATED);
}

ProductCreatedEvent 对象 ->

import lombok.Data;

@Data
public class ProductCreatedEvent {
@TargetAggregateIdentifier
private  String productId;
private  String product;
private  String price ;

}

命令类 CreateProductCommand ->

@Builder
@Data
public class CreateProductCommand {
@TargetAggregateIdentifier
private final String productId;
private final String product;
private final String price ;

}

聚合类 ->

@Aggregate
public class ProductAggregate {

@AggregateIdentifier
private  String productId;
private  String product;
private  String price ;

public ProductAggregate() {
    
}

@CommandHandler
public ProductAggregate(CreateProductCommand command) {
    //Todo: Validation logic can be handled here
    ProductCreatedEvent event=new ProductCreatedEvent();
    
    BeanUtils.copyProperties(command,event);
    AggregateLifecycle.apply(event);
}

@EventSourcingHandler
public void on(ProductCreatedEvent event) {
    this.price=event.getPrice();
    this.productId=event.getProductId();
    this.product=event.getProduct();
    
}

}

此外,我正在使用以下轴突弹簧启动器:

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

解决方法

已解决。 我不得不从下面的 axon-spring starter 中排除 axon-server-connector 依赖

        <dependency>
        <groupId>org.axonframework</groupId>
        <artifactId>axon-spring-boot-starter</artifactId>
        <version>4.0.3</version>
        <exclusions>
            <exclusion>
                <groupId>org.axonframework</groupId>
                <artifactId>axon-server-connector</artifactId>
            </exclusion>
        </exclusions>
    </dependency>