Я пытаюсь разбить строку, разделенную символом @, и обработать каждый токен по одному и тому же маршруту.
camel-context.xml:
<split streaming="true">
<tokenize token="@"/>
<to uri="validateResubmitTransactionIdProcessor"/>
</split>
Ниже приведен фрагмент кода процессора:
epublic class ValidateResubmitTransactionIdProcessor implements Processor {
public void process(Exchange exchng) throws Exception {
Object[] args = exchng.getIn().getBody(Object[].class);
}}
У меня следующее исключение:
e Причина: org.apache.camel.InvalidPayloadException: Нет доступного тела типа: org.apache.camel.Exchange, но имеет значение: 11484 типа: java.lang.String on: Сообщение: 11484. Причина: Нет доступного преобразователя типов преобразовать из типа: java.lang.String в требуемый тип: org.apache.camel.Exchange со значением 11484. Exchange [Сообщение: 11484]. Вызвано: [org.apache.camel.NoTypeConversionAvailableException - Преобразователь типов недоступен для преобразования из типа: java.lang.String в требуемый тип: org.apache.camel.Exchange со значением 11484] в org.apache.camel.impl .MessageSupport.getMandatoryBody (MessageSupport.java:101) в org.apache.camel.builder.ExpressionBuilder $ 35.evaluate (ExpressionBuilder.java:847) Вызвано: org.apache.camel.NoTypeConversionAvailableException типа convertable : java.lang.String к требуемому типу: org.apache.camel.Exchange со значением 11484 в org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo (BaseTypeConverterRegistry.java:169) в org.apache.camel.core .osgi.OsgiTypeConverter.mandatoryConvertTo (OsgiTypeConverter.java:110) в org.apache.camel.impl.MessageSupport.getMandatoryBody (MessageSupport.java:99) nter
Я не уверен, правильно ли я использую сплиттер. Кроме того, я знаю, как преобразовать java.lang.String в Exchange. Кажется, это не поддерживается верблюдом.