【问题标题】:Splitter in Mule 3.2Mule 3.2 中的分离器
【发布时间】:2015-10-30 18:16:42
【问题描述】:

我在 Mule 流程中使用了拆分器,如该问题的答案所述:

Mule splitter using regex returned no results

但是,当我尝试在 Mule 3.2 上执行类似操作时,我收到以下错误:

来自 URL [file:/...] 的 XML 文档中的第 27 行无效;嵌套异常是 org.xml.sax.SAXParseException:cvc-complex-type.2.4.a:发现以元素“表达式语言”开头的无效内容。 '{"http://www.mulesoft.org/schema/mule/core":annotations, "http://www.mulesoft.org/schema/mule/core":default-threading-profile, "http://www.mulesoft.org/schema/mule/core":default-dispatcher-threading-profile, "http://www.mulesoft.org/schema/mule/core":default-receiver-threading- 之一profile, "http://www.mulesoft.org/schema/mule/core":default-service-threading-profile, "http://www.mulesoft.org/schema/mule/core":abstract-reconnection-strategy}' 是预期的。 (org.mule.api.lifecycle.InitialisationException)

所以,我的问题是:Mule 3.2 中可以使用以下元素吗?如果不是,那么在那个版本中正确的做法是什么?

<configuration>
    <expression-language autoResolveVariables="false">
        <import class="org.mule.util.StringUtils" />
    </expression-language>
</configuration>
<splitter expression="#[StringUtils.split(message.payload, '\n\r')]" doc:name="Splitter" />

编辑

按照@Ryan Carter 的回答,我使用了以下内容:

<splitter evaluator="groovy" expression="payload.split('\n\r')" doc:name="Splitter" />

这适用于 Mule 3.4,但在 Mule 3.2 上似乎返回一个引发以下警告和后验错误的数组:

Splitter 只返回一个结果。如果这不是预期的,请检查您的拆分表达式

编辑 2

在 Mule 3.2 中,您必须添加 toList() 函数来“拆分”数组,此版本似乎将其视为单个对象。

【问题讨论】:

    标签: java xml regex mule mule-studio


    【解决方案1】:

    在 3.2 架构中不可用:http://www.mulesoft.org/schema/mule/core/3.2/mule.xsd

    expression-language 直到 3.3.x 才添加:http://www.mulesoft.org/schema/mule/core/3.3/mule.xsd

    在此之前,您只需要完全符合班级资格即可。即#[org.mule.util.StringUtils.split(message.payload, '\n\r')]

    更新 要在 Mule 3.2 中使用拆分器,您还需要指定一个“评估器”属性。 在这种情况下,groovy 评估器可能会工作得最好:

    【讨论】:

    • 嗨瑞恩,感谢您的回答。我了解我无法使用配置来导入 StringUtils。但随之而来的问题是:豪斯要使用分流器吗?因为我也没有表达式属性。我只有一个名为“评估者”的属性
    • 更新了我的答案。您应该同时具有表达式和评估器属性。也许内容辅助无法正常工作。你用的是什么冰?
    【解决方案2】:

    知道了:

    <splitter evaluator="groovy" expression="payload.split('\n\r').toList()" doc:name="Splitter" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-09
      • 2012-12-02
      • 2015-07-24
      • 1970-01-01
      • 1970-01-01
      • 2012-08-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多