如何解决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 举报,一经查实,本站将立刻删除。