Я взял простой пример activemq-camel-blueprint из ServiceMix 4.4.0 и добавил в сокет Mina TCP для чтения из строк ASCII.
<camelContext xmlns="http://camel.apache.org/schema/blueprint">
<route>
<from uri="mina:tcp://localhost:4001?textline=true&sync=false" />
<bean ref="NMEAString" method="ingest" />
<to uri="activemq:queue:LOG.ME"/>
</route>
<route>
<from uri="activemq:queue:LOG.ME" />
<to uri="log:ExampleActiveMQRouterBlueprint" />
</route>
</camelContext>
Я запускаю пример в Karaf.Все, что делает NMEAString - это распечатывает объект в STDOUT.
Я запускаю небольшую программу для передачи файла ASCII в сокетное соединение.Он выдвигает весь файл (~ 40) строк за несколько миллисекунд.
Я вижу распечатку STDOUT внутри Карафа примерно через 30 секунд между строк.Я получаю следующие исключения в моем файле servicemix.log:
Кто-нибудь знает, что означает это исключение и почему оно выдает его на таком простом примере?
org.apache.camel.CamelException: org.apache.camel.CamelExchangeException: Невозможно записать тело.Exchange [Message: [Body is null]] в org.apache.camel.component.mina.MinaConsumer $ ReceiveHandler.exceptionCaught (MinaConsumer.java:91) [186: org.apache.camel.camel-mina: 2.8.3]в org.apache.mina.common.support.AbstractIoFilterChain $ TailFilter.exceptionCaught (AbstractIoFilterChain.java:564) [187: org.apache.servicemix.bundles.mina: 1.1.7.5] в org.apache.mina.common.su.AbstractIoFilterChain.callNextExceptionCaught (AbstractIoFilterChain.java:345) [187: org.apache.servicemix.bundles.mina: 1.1.7.5] в org.apache.mina.common.support.AbstractIoFilterChain.IjFjter.jjj.jjj.jj[187: org.apache.servicemix.bundles.mina: 1.1.7.5] at org.apache.mina.common.support.AbstractIoFilterChain $ EntryImpl $ 1.exceptionCaught (AbstractIoFilterChain.java:643) [187: org.apache.serm.bundles.mina: 1.1.7.5] в org.apache.mina.filter.executor.ExecutorFilter.processEvent (ExecutorFilter.java:224) [187: org.apache.servicemix.bundles.mina: 1.1.7.5] в org.apache.mina.filter.executor.ExecutorFilter $ ProcessEventsRunnable.run (ExecutorFilter.java:264) [187: org.apache.servicemix.bundles.mina: 1.1.7.5] в java.util.concurrent.ThreadPoolExecutor $ Worker.runTask (ThreadPoolExecutor.java:886 [:0_29] в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:908) [: 1.6.0_29] в java.lang.Thread.run (Thread.java:662) [: 1.6.0_29] Причина:: org.apache.camel.CamelExchangeException: Невозможно записать тело.Обмен [Сообщение: [Тело является нулевым]] в org.apache.camel.component.mina.MinaHelper.writeBody (MinaHelper.java:55) [186: org.apache.camel.camel-mina: 2.8.3] в org.apache.camel.component.mina.MinaConsumer $ ReceiveHandler.messageReceived (MinaConsumer.java:148) [186: org.apache.camel.camel-mina: 2.8.3] в org.apache.mina.common.support.AbstractIoFilterChater$ TailFilter.messageReceived (AbstractIoFilterChain.java:570) [187: org.apache.servicemix.bundles.mina: 1.1.7.5] at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageoil_haj187: org.apache.servicemix.bundles.mina: 1.1.7.5] at org.apache.mina.common.support.AbstractIoFilterChain.access $ 1100 (AbstractIoFilterChain.java:53) [187: org.apache.servicemix.bundles.mina: 1.1.7.5] at org.apache.mina.common.support.AbstractIoFilterChain $ EntryImpl $ 1.messageReceived (AbstractIoFilterChain.java:648) [187: org.apache.servicemix.bundles.mina: 1.1.7.5] в org.apache.mina.filter.executor.ExecutorFilter.processEvent (ExecutorFilter.java:220)[187:org.apache.servicemix.bundles.mina:1.1.7.5] ... еще 4