我正在尝试配置与网关的集成流程。在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:请求通道将被自动配置。
@IntegrationComponentScan
存在我还有其他设置吗?
答案 0 :(得分:0)
当然,变换应该返回一些内容,应该是route
或handle
。
但是,即使我修复了#1,我也面临着这样的问题:无效的kotlin函数返回Unit
。 Spring集成检查Unit == null
的{{1}},试图找到下一个通道并抛出错误。解决方法是使用kotlin lambda并显式返回false
。
在与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个月后解决了。