Camel activemq компонент nosuchmethod исключение - PullRequest
0 голосов
/ 22 декабря 2018

Я использую компонент activemq для отправки / получения сообщений, однако, когда я разделяю () body (), я получаю это исключение ниже.Я использую верблюжью версию 2.23.0.может кто-нибудь посоветовать, что не так?

Это пример маршрута, который вызывает эту проблему:

from("activemq:queue:aaa")
.process("myprocessor")
.split().body()
.to("activemq:queue:bbb")

У меня нет проблем, если я использую этот способ:

from("activemq:queue:aaa")
.process("myprocessor")

Внутри MyProcessor,

process(Exchange exchange) {
   for (String body : exchange.getIn().getBody(List.class)) {
     ProducerTemplate.sendBody("activemq:queue:bbb",body);
   }
 }

Исключение:

Caused by: java.lang.NoSuchMethodError: org.apache.camel.component.jms.JmsMessage.getCamelContext()Lorg/apache/camel/CamelContext;
    at org.apache.camel.component.jms.JmsMessage.newInstance(JmsMessage.java:195)
    at org.apache.camel.component.jms.JmsMessage.newInstance(JmsMessage.java:40)
    at org.apache.camel.impl.MessageSupport.copy(MessageSupport.java:152)
    at org.apache.camel.impl.DefaultExchange.copy(DefaultExchange.java:116)
    at org.apache.camel.impl.DefaultExchange.copy(DefaultExchange.java:90)
    at org.apache.camel.util.ExchangeHelper.createCopy(ExchangeHelper.java:301)
    at org.apache.camel.processor.Splitter.copyExchangeNoAttachments(Splitter.java:291)
    at org.apache.camel.processor.Splitter.access$100(Splitter.java:56)
    at org.apache.camel.processor.Splitter$SplitterIterable.<init>(Splitter.java:158)
    at org.apache.camel.processor.Splitter$SplitterIterable.<init>(Splitter.java:144)
    at org.apache.camel.processor.Splitter.createProcessorExchangePairsIterable(Splitter.java:141)
    at org.apache.camel.processor.Splitter.createProcessorExchangePairsList(Splitter.java:245)
    at org.apache.camel.processor.Splitter.createProcessorExchangePairs(Splitter.java:129)
    at org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:241)

1 Ответ

0 голосов
/ 27 декабря 2018

Помимо потенциальных проблем с classpath, которые прокомментировал Клаус Ибсен, мне интересно, чего вы пытаетесь достичь.

Ваш MyProcessor перебирает части тела сообщения (a List) и отправляет каждую часть в очередь bbb.Затем вы используете Splitter в своем верблюжьем маршруте и отправляете детали в очередь bbb?

Разве ваш MyProcessor не делает то же самое, что и остальная часть вашего верблюжьего маршрута?

...