不支持发送,因为没有配置请求通道
send is not supported, because no request channel has been configured
我正在尝试配置与网关的集成流程。在 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
文档:将自动配置请求通道。
@IntegrationComponentScan
存在
- https://docs.spring.io/spring-integration/reference/htmlsingle/#java-dsl-gateway 读取并用作基础
- 双重检查:我正在使用这个网关
我是否遗漏了任何其他设置?
当然transform应该return的东西,应该有route
或者handle
.
但即使我修复了 #1,我也遇到了这个问题:Void kotlin 函数 return Unit
。 Spring 集成检查 Unit == null
即 false
,尝试找到下一个频道并抛出错误。解决方法是明确使用 kotlin lambda 和 return null
。
在使用 Spring Integration 和 kotlin 这 8 个月后,我决定尝试为 Spring Integration (https://github.com/spring-projects/spring-integration/issues/3016) 创建 Kotlin DSL
Kotlin 单位:https://kotlinlang.org/docs/reference/functions.html#unit-returning-functions
P.S.: 当然早点解决了,不是8个月后。
我正在尝试配置与网关的集成流程。在 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
文档:将自动配置请求通道。
@IntegrationComponentScan
存在- https://docs.spring.io/spring-integration/reference/htmlsingle/#java-dsl-gateway 读取并用作基础
- 双重检查:我正在使用这个网关
我是否遗漏了任何其他设置?
当然transform应该return的东西,应该有
route
或者handle
.但即使我修复了 #1,我也遇到了这个问题:Void kotlin 函数 return
Unit
。 Spring 集成检查Unit == null
即false
,尝试找到下一个频道并抛出错误。解决方法是明确使用 kotlin lambda 和 returnnull
。在使用 Spring Integration 和 kotlin 这 8 个月后,我决定尝试为 Spring Integration (https://github.com/spring-projects/spring-integration/issues/3016) 创建 Kotlin DSL
Kotlin 单位:https://kotlinlang.org/docs/reference/functions.html#unit-returning-functions
P.S.: 当然早点解决了,不是8个月后。