【发布时间】:2018-09-29 05:27:37
【问题描述】:
我正在尝试拆分一个“@”分隔的字符串并通过相同的路由处理每个令牌。
骆驼上下文.xml:
<split streaming="true">
<tokenize token="@"/>
<to uri="validateResubmitTransactionIdProcessor"/>
</split>
以下是处理器代码sn-p:
epublic class ValidateResubmitTransactionIdProcessor implements Processor {
public void process(Exchange exchng) throws Exception {
Object[] args = exchng.getIn().getBody(Object[].class);
}}
我得到以下异常:
eCaused by: org.apache.camel.InvalidPayloadException: No body available of type: org.apache.camel.Exchange but has value: 11484 of type: java.lang.String on: Message: 11484. Caused by: No类型转换器可用于从类型: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:没有类型转换器可用于从类型: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。骆驼好像不支持这个。
【问题讨论】:
标签: java apache-camel jbossfuse apache-servicemix