我在Apache Camel中编写了一个自定义组件。骆驼成功地创建了它的消费者并使用我的 URI,但没有调用处理器。这是我的消费者代码片段(在 Kotlin 中):
class SoroushBotConsumer (private val endpoint: MyEndpoint, processor: Processor) : DefaultConsumer(endpoint, processor) {
val objectMapper:ObjectMapper = ObjectMapper();
init {
startListening()
}
private fun startListening() {
val client = ClientBuilder.newBuilder().register(SseFeature::class.java).build()
val target = client.target("MY_URL"))
while(true){
var e: EventInput? target.request().get(EventInput::class.java)!!
val inboundEvent = e.read()
val exchange = endpoint.createExchange()
exchange.getIn().body = objectMapper.readValue(inboundEvent.rawData,MessageModel::class.java)
try {
processor.process(exchange)
} catch (e: Exception) {
if (exchange.exception != null) {
exceptionHandler.handleException("Error processing exchange",exchange, exchange.exception)
}
}
}
}
在消费者中一切正常,但没有处理器被执行。这是我创建路线的方法!
var context = DefaultCamelContext()
context.addRoutes(object : RouteBuilder() {
override fun configure() {
from("myapp://getMessage/).process{
println(it.getIn())
}.to("myapp://sendMessage/")
}
})
context.start();
Thread.sleep(100000);
context.stop();
它既不调用流程也不创建我的生产者。(它甚至不调用MyEndpoint::createProducer())
当我用另一个端点替换我的from语句时file,一切正常。
更新:ScheduledPollConsumer当我从实现方法扩展我的消费者时pull,一切都很好。
慕工程0101907
慕田峪7331174
三国纷争
随时随地看视频慕课网APP
相关分类