Java access Mule ESB变量与flowVars.page或flowVars[';page';]之间有什么区别

Java access Mule ESB变量与flowVars.page或flowVars[';page';]之间有什么区别,java,mule,redhat,Java,Mule,Redhat,我使用Mule ESB构建api,并在生产环境(redhat)上部署它。一只虫子出现了 我有一个uri参数“page”http://localhost:8081/api/assets/33/annotations?page=0 在api上,我将该查询参数捕获到变量 在那之后,我试图捕捉它的流动。但是如果我使用#[flowVar.page]捕获,有时它的值是null,即使?page=0 现在,如果我尝试使用#[flowVars['page']]捕获相同的变量'page',它永远不会出现null 我

我使用Mule ESB构建api,并在生产环境(redhat)上部署它。一只虫子出现了

我有一个uri参数“page”
http://localhost:8081/api/assets/33/annotations?page=0

在api上,我将该查询参数捕获到变量

在那之后,我试图捕捉它的流动。但是如果我使用
#[flowVar.page]
捕获,有时它的值是
null
,即使
?page=0

现在,如果我尝试使用
#[flowVars['page']]
捕获相同的变量'page',它永远不会出现
null

我的整个流程是

<flow name="get:/assets/{assetsId}/annotations:api-config" initialState="started">

     <set-variable variableName="page" value="#[header:INBOUND:page?]" doc:name="page"/>

    <jdbc:outbound-endpoint exchange-pattern="request-response" connector-ref="tool_de_anotacao_JDBC" queryKey="get annotations" queryTimeout="-1" doc:name="Database" mimeType="application/json" disableTransportTransformer="true">
        <jdbc:transaction action="ALWAYS_BEGIN"/>
        <jdbc:query key="get annotations" value="select  content from tool.tasset_annotation 
where 1 = 1 and assetId = cast(#[flowVars.assetsId] as text)
    and CASE WHEN #[flowVars.containsKey('page')] THEN  
        page = cast(#[flowVars['page']] as integer ) ELSE
            1 = 1 END order by id desc; 

   "/>

    </jdbc:outbound-endpoint>
    <object-to-string-transformer doc:name="Object to String"/>
    <scripting:component doc:name="Groovy">
        <scripting:script engine="Groovy"><![CDATA[payload = payload.replaceAll("content=","\"content\":");]]></scripting:script>
    </scripting:component>
    <message-properties-transformer mimeType="application/json" doc:name="Message Properties"/>

</flow>

这有什么问题吗?还是我做错了什么

我无法在windows环境中重播该漏洞

非常感谢你的帮助

问候,,
Valter Gomes

这两种语法都是访问地图数据的有效方法。MEL基于MVEL。有关酒店导航的更多信息,请点击此处:

一件可能有帮助的事情是首先改变设置变量的方式。您正在使用不推荐使用的语法。尝试:

<set-variable variableName="page" value="#[message.inboundProperties.?page]" doc:name="page"/>

这似乎是3.5.3中解决的问题: