Vert.x@ConsumeEvent用于事件列表

Vert.x@ConsumeEvent用于事件列表,vert.x,quarkus,Vert.x,Quarkus,只是一个与具有对象列表的@ConsumeEvent方法相关的快速问题。 可以找到完整的项目示例 长话短说: 在消费者方面(参见我的实现),这种方法是可以接受的,并且工作得很好: 但是类似下面的方法会导致Quarkus启动失败,原因是错误ClassNotFoundException:java.util.List: @ConsumeEvent(Config.EBA\u Config\u重新加载) 公共字符串重新加载(列出事件){…} 尽管在启动时注册了一个MessageCodec(在另一个@App

只是一个与具有对象列表的
@ConsumeEvent
方法相关的快速问题。 可以找到完整的项目示例

长话短说:

  • 在消费者方面(参见我的实现),这种方法是可以接受的,并且工作得很好:
  • 但是类似下面的方法会导致Quarkus启动失败,原因是错误
    ClassNotFoundException:java.util.List

    @ConsumeEvent(Config.EBA\u Config\u重新加载)
    公共字符串重新加载(列出事件){…}
    
  • 尽管在启动时注册了一个
    MessageCodec
    (在另一个
    @ApplicationScoped
    类中,请参见我的方法),但这个注册过程似乎会发生得太晚,问题仍然存在
  • 你知道我是否可以设置处理这两个
    @ApplicationScoped
    bean的顺序,或者我是否可以在另一个(更早期的)案例中注册
    MessageCodec


    非常感谢

    不直接支持集合和数组。您已经做的是一个很好的解决方法,即将集合包装到类中,并将该类用作事件

    另外需要注意的是,您不需要注册编解码器,因为如果在
    @consumerevent
    中使用编解码器,它们将自动注册

    如果要覆盖事件编解码器,可以执行以下操作

     @ConsumeEvent(value = Config.EBA_CONFIGS_RELOAD, codec = YourCodec.class)
    

    谢谢你的反馈。因此,外卖是:1。不(直接或间接)支持集合和数组。2.注册编解码器确实可以在
    @consumerevent
    中根据上下文方便地提供。我们能得到这个不受支持的东西的官方参考吗?事实上,我检查了源代码。也许Quarkus团队的人会很快回复并确认。
    @ConsumeEvent(Config.EBA_CONFIG_RELOAD)
    public String reload(List<ReloadConfigEvent> events) { ... }
    
     @ConsumeEvent(value = Config.EBA_CONFIGS_RELOAD, codec = YourCodec.class)