部署应用程序后,使用流控制器的评估有时会失败。 无法确定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*********}
在其他分支中记录字符串有效负载是'{....,'functionId“:”FUNCTION_A“,...}'。
你知道这个问题的原因吗?
谢谢,