我正在尝试配置与网关的集成流。在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:request通道将自动配置。
@IntegrationComponentScan
存在- https://docs.spring.io/spring-integration/reference/htmlsingle/#java-dsl网关已读取并用作基础
- 仔细检查:我正使用这个网关
我错过了其他设置吗?
-
当然,转换应该返回一些东西,应该有
route
或handle
。 -
但即使我修复了我面临的问题:Void-kotlin函数返回
Unit
。Spring集成检查Unit == null
(即false
(,尝试查找下一个通道并抛出错误。修复方法是使用kotlin lambda并显式返回null
。 -
在与Spring Integration和kotlin合作了8个月后,我决定尝试为Spring Integration创建kotlin DSL(https://github.com/spring-projects/spring-integration/issues/3016)
Kotlin单位:https://kotlinlang.org/docs/reference/functions.html#unit-返回功能
p。S.:当然我早就解决了,不是8个月以后。