Choice流量控制器的评估结果不正确。 (这是Bug吗?)

时间:2014-01-22 12:01:31

标签: mule

部署应用程序后,使用流控制器的评估有时会失败。 无法确定Choice流量控制器失败。 (每次都不一样) 解决问题重启Mule ESB时。

例如:

        <choice doc:name="Choice">
                <when expression="#[json:/functionId=FUNCTION_A]">
                        <flow-ref name="function1Flow" doc:name="FUNCTION_A"></flow-ref>
                </when>
                <when expression="#[json:/functionId=FUNCTION_B]">
                        <flow-ref name="functionBFlow" doc:name="FUNCTION_B"></flow-ref>
                </when>
                <when expression="#[json:/functionId=FUNCTION_C]">
                        <flow-ref name="functionCAFlow" doc:name="FUNCTION_C"></flow-ref>
                </when>
                <when expression="#[json:/functionId=FUNCTION_D]">
                        <flow-ref name="functionDFlow" doc:name="FUNCTION_D"></flow-ref>
                </when>
                <otherwise>
                        <logger message="System error is occured.
MESSAGE = #[message]
PAYLOAD = #[payload]" level="ERROR" doc:name="message info"/>
                </otherwise>
        </choice>

评估结果总是“不然”。

记录器输出:

2014-01-21 09:32:02,430 ERROR LoggerMessageProcessor - System error is occured. MESSAGE =
org.mule.DefaultMuleMessage
{
  id=7250d66b-8233-11e3-9a78-d595670d1f5a
  payload=java.lang.String
  correlationId=<not set>
  correlationGroup=-1
  correlationSeq=-1
  encoding=UTF-8
  exceptionPayload=<not set>

Message properties:
  INVOCATION scoped properties:
    jersey_response=com.sun.jersey.spi.container.ContainerResponse@67a586cd
  INBOUND scoped properties:
    Accept=*/*
    Connection=false
    Content-Length=532
    Content-Type=application/json
    Host=********masked*********:8081
    Keep-Alive=false
    MULE_ORIGINATING_ENDPOINT=endpoint.http.********masked*********
    MULE_REMOTE_CLIENT_ADDRESS=/********masked*********:21741
    User-Agent=dummy
    cookieSpec=rfc2109
    http.context.path=********masked*********
    http.context.uri=********masked*********
    http.headers={Host=********masked*********:8081, Content-Length=532, User-Agent=dummy, Keep-Alive=false, Connection=false, Content-Type=application/json, Accept=*/*}
    http.method=PUT
    http.query.params={}
    http.query.string=
    http.relative.path=********masked*********
    http.request=********masked*********
    http.request.path=********masked*********
    http.version=HTTP/1.1
  OUTBOUND scoped properties:
    Content-Type=text/plain;charset=UTF-8
    MULE_ENCODING=UTF-8
    http.status=200
  SESSION scoped properties:
} PAYLOAD = {********masked*********,"functionId":"FUNCTION_A",********masked*********}
  • PAYLOAD = {....,“functionId”:“FUNCTION_A”,...} - &gt;总是
  • PAYLOAD = {....,“functionId”:“FUNCTION_B”,...} - &gt;始终为flow-ref'functionBFlow'
  • PAYLOAD = {....,“functoinId”:“FUNCTION_C”,...} - &gt;始终为flow-ref'functionCAFlow'
  • PAYLOAD = {....,“functionId”:“FUNCTION_D”,...} - &gt;始终为flow-ref'functionDFlow'

在其他分支中记录字符串有效负载是'{....,'functionId“:”FUNCTION_A“,...}'。

你知道这个问题的原因吗?

谢谢,

0 个答案:

没有答案