代码之家  ›  专栏  ›  技术社区  ›  gargi258

未找到轴突3处理程序

  •  2
  • gargi258  · 技术社区  · 7 年前

    我是Java初学者。我将只为工作和处理命令配置我的处理程序。此时此刻,我收到 Exception No handler was subscribed to command [com.capgemini.books.CreateBook] .

    我的代码看起来像:

    @Configuration
    public class ControllerConfig {
        @Bean
        public CommandBus commandBus() {
            return new SimpleCommandBus();
        }
    }
    
    public class CreateBookHandler {
        public CreateBookHandler() { }
    
        @CommandHandler
        public void handle(CreateBook command) {
           Book newBook = new Book(1001L, "anonymous", command.bookTitle());
        }
    }
    
    1 回复  |  直到 7 年前
        1
  •  4
  •   Jan Galinski    7 年前

    希望我能帮你:-)

    通过Spring Boot运行应用程序,并使用 axon-spring-boot-starter 依赖于自动连接一切,然后我知道你错过了什么。 这个 CreateBookHandler 不是Spring Bean,因此Axon的自动布线设置没有注意到它是一个Bean,因此无法找到 @CommandHandler

    此外,我通常将命令处理函数直接放在聚合上,而不是放在设置中的单独组件中。这是因为大多数时候命令都在单个聚合的上下文中,所以为什么不让聚合本身处理它呢?

    希望这能帮到你!