我正在尝试实现一个使用 Lagom 1.2.2 设置的 Message Broker,但遇到了麻烦。该文档具有以下服务描述符示例:
default Descriptor descriptor() {
return named("helloservice").withCalls(...)
// here we declare the topic(s) this service will publish to
.publishing(
topic("greetings", this::greetingsTopic)
)
....;
}
这个实现示例:
public Topic<GreetingMessage> greetingsTopic() {
return TopicProducer.singleStreamWithOffset(offset -> {
return persistentEntityRegistry
.eventStream(HelloEventTag.INSTANCE, offset)
.map(this::convertEvent);
});
}
但是,没有示例说明函数的参数类型或返回类型是什么convertEvent()
,这就是我要画一个空白的地方。另一方面,MessageBroker 的订阅者,它似乎正在使用GreetingMessage
对象,但是当我创建一个convertEvent
返回GreetingMessage
对象的函数时,我得到一个编译错误:
Error:(61, 21) java: method map in class akka.stream.javadsl.Source<Out,Mat> cannot be applied to given types;
required: akka.japi.function.Function<akka.japi.Pair<com.example.GreetingEvent,com.lightbend.lagom.javadsl.persistence.Offset>,T>
found: this::convertEvent
reason: cannot infer type-variable(s) T
(argument mismatch; invalid method reference
incompatible types: akka.japi.Pair<com.example.GreetingEvent,com.lightbend.lagom.javadsl.persistence.Offset> cannot be converted to com.example.GreetingMessage)
有没有更彻底的例子来说明如何使用它?我已经检查了 Chirper 示例应用程序,它似乎没有这样的示例。
谢谢!