我的 Groovy 代码:
class GatewayVerticle extends AbstractVerticle {
DeliveryOptions HOP_OPTS = new DeliveryOptions( sendTimeout:5000 )
// also tried
//DeliveryOptions HOP_OPTS = new DeliveryOptions()
//DeliveryOptions HOP_OPTS = new DeliveryOptions().setSendTimeout( 5000 )
@Override
void start() throws Exception {
vertx.eventBus().send( 'addr', [ aa:42 ], HOP_OPTS ){ println it }
}
}
失败了
java.lang.IllegalArgumentException:没有消息编解码器类型:io.vertx.core.eventbus.impl.CodecManager.lookupCodec(CodecManager.java:101) 的 io.vertx.core.eventbus.impl 的类 java.util.LinkedHashMap。 clustered.ClusteredEventBus.createMessage(ClusteredEventBus.java:180) 在 io.vertx.core.eventbus.impl.EventBusImpl.send(EventBusImpl.java:111)
如果我省略设置sendTimeout
,它会失败并出现同样的异常。
以下行工作得很好:
vertx.eventBus().send( 'gateway', [ aa:42 ] ){ doSomeStuff() }
我错过了什么?
TIA