Я взял простой пример activeemq-camel-blueprint из ServiceMix 4.4.0 и добавлен в сокет Mina TCP для чтения из ASCII-строк.Простой пример Apache Camel и Mina (Karaf) бросает CamelExchangeException: не удается написать тело
<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 в пределах Karaf примерно через 30 секунд между линиями. Я получаю следующие исключения в моем файле servicemix.log:
Кто-нибудь знает, что означает это исключение и почему оно бросает его с таким простым примером ?
org.apache.camel.CamelException: org.apache.camel.CamelExchangeException: не удается написать тело. Exchange [Сообщение: [Тело равно null]] at org.apache.camel.component.mina.MinaConsumer $ ReceiveHandler.exceptionCaught (MinaConsumer.java:91) [186: org.apache.camel.camel-mina: 2.8.3 ] at 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.support.AbstractIoFilterChain.callNextExceptionCaught (AbstractIoFilterChain.java:345) [187: org.apache.servicemix.bundles.mina: 1.1.7.5] на org.apache.mina.common.support.AbstractIoFilterChain.access $ 1000 (AbstractIoFilterChain. java: 53) [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.servicemix.bundles.mina: 1.1.7.5] at org.apache.mina.filter.executor.ExecutorFilter.processEvent (ExecutorFilter.java:224) [187: org.apache.servicemix.bundles.mina: 1.1.7.5] at 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) [: 1.6.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: невозможно написать тело. Exchange [Сообщение: [Тело равно null]] на org.apache.camel.component.mina.MinaHelper.writeBody (MinaHelper.java:55) [186: org.apache.camel.camel-mina: 2.8.3] at 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.AbstractIoFilterChain $ TailFilter.messageReceived (AbstractIoFilterChain.java:570) [187: org.apache.servicemix.bundles.mina: 1.1.7.5] на org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived (AbstractIoFilterChain.java : 299) [187: 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] на org.apache.mina.common.support.Abstract IoFilterChain $ EntryImpl $ 1.messageReceived (AbstractIoFilterChain.java:648) [187: org.apache.servicemix.bundles.mina: 1.1.7.5] at org.apache.mina.filter.executor.ExecutorFilter.processEvent (ExecutorFilter.java: 220) [187: org.apache.servicemix.bundles.mina: 1.1.7.5] ... 4 еще
Ну, имеет отношение к: – user297500