Spring boot -Axon 框架 NoHandlerForCommandException:没有命令处理程序

问题描述

我在尝试将 Axon 框架与 Spring boot 一起使用时收到 NoHandlerForCommandException: No Handler for command。

以下是我的 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();
    
}

}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)