我正在使用Apache Camel编写一个简单的POC来接收SMNP陷阱。我试图接收传入的交换消息,将其转换为snmpMessage
,然后创建一个自定义类型,该类型包含snmpMessage
中的两个字段。然后,我想将此自定义对象保存到H2 DB。我的snMP路由如下:
open class snmpTrapRoute(private val repository: IPduEventRepository) : RouteBuilder() {
@Throws(Exception::class)
override fun configure() {
from("snmp:0.0.0.0:1611?protocol=udp&type=TRAP")
.process { exchange ->
val message = exchange.getIn() as snmpMessage
val pduEvent = CustomPduEvent(message.snmpMessage.requestID.toLong(),message.snmpMessage.type)
exchange.getIn().setBody(pduEvent,CustomPduEvent::class.java)
}
.bean(repository,"save")
.log("MIH :: DB Entries [" + repository.findAll() + "]")
}
}
但是,.bean
调用似乎并未将对象添加到数据库中。如果我将repository.save(pduEvent)
包含在处理器中并删除对.bean
的调用,则可以添加它。
还尝试设置out邮件正文exchange.out.setBody(pduEvent,PduEvent::class.java)
,但结果相同。
我要去哪里错了?