我的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:没有消息编解码器的类型:类java.util.LinkedHashMap 在io.vertx.core.eventbus.impl.CodecManager.lookupCodec(CodecManager.java:101) 在io.vertx.core.eventbus.impl.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