不支持发送,因为未配置请求通道

时间:2018-11-22 00:11:00

标签: spring-integration spring-integration-dsl

我正在尝试配置与网关的集成流程。在Kotlin上使用Java DSL。

网关配置:

@MessagingGateway(name = "tdiOutSenderGateway")
interface TdiOutSenderGateway {
    fun send(packet: PhasorEnricher.Packet)
}

流配置:

@Bean
open fun tdiOutSendFlow() = IntegrationFlows
    .from(TdiOutSenderGateway::class.java)
    .transform(tdiOutSenderRouter())
    .get()!!

忘了send is not supported, because no request channel has been configured docs:请求通道将被自动配置。

我还有其他设置吗?

1 个答案:

答案 0 :(得分:0)

  1. 当然,变换应该返回一些内容,应该是routehandle

  2. 但是,即使我修复了#1,我也面临着这样的问题:无效的kotlin函数返回Unit。 Spring集成检查Unit == null的{​​{1}},试图找到下一个通道并抛出错误。解决方法是使用kotlin lambda并显式返回false

  3. 在与Spring Integration和kotlin一起工作了8个月之后,我决定尝试为Spring Integration(https://github.com/spring-projects/spring-integration/issues/3016)创建Kotlin DSL

科特琳单位:https://kotlinlang.org/docs/reference/functions.html#unit-returning-functions


P.S .:当然,我早点解决了,而不是8个月后解决了。