首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Spring DSL (XML路由配置)中同时使用tokenize和simple for Apache Camel in split?

如何在Spring DSL (XML路由配置)中同时使用tokenize和simple for Apache Camel in split?
EN

Stack Overflow用户
提问于 2021-02-02 05:05:55
回答 1查看 110关注 0票数 0

我想用XML将Java DSL中的表达式如下:

代码语言:javascript
运行
复制
from("direct:a")
    .split(body(String.class).tokenize("\n"))
        .to("direct:b");

当我尝试设置时,由两个元素组成,就像这样:

代码语言:javascript
运行
复制
<split><tokenize token=\"#@#\"><simple>${bodyAs(java.lang.String)} not contains ''</simple></tokenize></split>

或者像这样:

代码语言:javascript
运行
复制
<split><simple>${bodyAs(java.lang.String)} not contains ''</simple><tokenize token=\"#@#\"></tokenize><split>

它不允许使用以下方案验证XML:

代码语言:javascript
运行
复制
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 488; cvc-complex-type.2.2: Element 'tokenize' must have no element [children], and the value must be valid.

代码语言:javascript
运行
复制
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 475; cvc-complex-type.2.4.a: Invalid content was found starting with element 'tokenize'. One of '{\"http://camel.apache.org/schema/spring\":aggregate, \"http://camel.apache.org/schema/spring\":bean, \"http://camel.apache.org/schema/spring\":doCatch, \"http://camel.apache.org/schema/spring\":when, \"http://camel.apache.org/schema/spring\":choice, \"http://camel.apache.org/schema/spring\":otherwise, \"http://camel.apache.org/schema/spring\":circuitBreaker, \"http://camel.apache.org/schema/spring\":claimCheck, \"http://camel.apache.org/schema/spring\":convertBodyTo, \"http://camel.apache.org/schema/spring\":delay, \"http://camel.apache.org/schema/spring\":dynamicRouter, \"http://camel.apache.org/schema/spring\":enrich, \"http://camel.apache.org/schema/spring\":filter, \"http://camel.apache.org/schema/spring\":doFinally, \"http://camel.apache.org/schema/spring\":idempotentConsumer, \"http://camel.apache.org/schema/spring\":inOnly, \"http://camel.apache.org/schema/spring\":inOut, \"http://camel.apache.org/schema/spring\":intercept, \"http://camel.apache.org/schema/spring\":interceptFrom, \"http://camel.apache.org/schema/spring\":interceptSendToEndpoint, \"http://camel.apache.org/schema/spring\":loadBalance, \"http://camel.apache.org/schema/spring\":log, \"http://camel.apache.org/schema/spring\":loop, \"http://camel.apache.org/schema/spring\":marshal, \"http://camel.apache.org/schema/spring\":multicast, \"http://camel.apache.org/schema/spring\":onCompletion, \"http://camel.apache.org/schema/spring\":onException, \"http://camel.apache.org/schema/spring\":onFallback, \"http://camel.apache.org/schema/spring\":pipeline, \"http://camel.apache.org/schema/spring\":policy, \"http://camel.apache.org/schema/spring\":pollEnrich, \"http://camel.apache.org/schema/spring\":process, \"http://camel.apache.org/schema/spring\":recipientList, \"http://camel.apache.org/schema/spring\":removeHeader, \"http://camel.apache.org/schema/spring\":removeHeaders, \"http://camel.apache.org/schema/spring\":removeProperties, \"http://camel.apache.org/schema/spring\":removeProperty, \"http://camel.apache.org/schema/spring\":resequence, \"http://camel.apache.org/schema/spring\":rollback, \"http://camel.apache.org/schema/spring\":route, \"http://camel.apache.org/schema/spring\":routingSlip, \"http://camel.apache.org/schema/spring\":saga, \"http://camel.apache.org/schema/spring\":sample, \"http://camel.apache.org/schema/spring\":script, \"http://camel.apache.org/schema/spring\":setBody, \"http://camel.apache.org/schema/spring\":setExchangePattern, \"http://camel.apache.org/schema/spring\":setHeader, \"http://camel.apache.org/schema/spring\":setProperty, \"http://camel.apache.org/schema/spring\":sort, \"http://camel.apache.org/schema/spring\":split, \"http://camel.apache.org/schema/spring\":step, \"http://camel.apache.org/schema/spring\":stop, \"http://camel.apache.org/schema/spring\":threads, \"http://camel.apache.org/schema/spring\":throttle, \"http://camel.apache.org/schema/spring\":throwException, \"http://camel.apache.org/schema/spring\":to, \"http://camel.apache.org/schema/spring\":toD, \"http://camel.apache.org/schema/spring\":transacted, \"http://camel.apache.org/schema/spring\":transform, \"http://camel.apache.org/schema/spring\":doTry, \"http://camel.apache.org/schema/spring\":unmarshal, \"http://camel.apache.org/schema/spring\":validate, \"http://camel.apache.org/schema/spring\":whenSkipSendToEndpoint, \"http://camel.apache.org/schema/spring\":wireTap, \"http://camel.apache.org/schema/spring\":serviceCall}' is expected.

因此,在XML中把simple和tokenize放在一起是不可能的,那么该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-02 05:13:08

令人惊讶的是,它在

代码语言:javascript
运行
复制
<split><tokenize token=\"#@#\">${bodyAs(java.lang.String)} contains '#@#'</tokenize></split>

也就是说,<tokenize/>可以有一个与<simple/>解释相同的主体

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66000125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档