【问题标题】:MULE_JDBC_UDATE_COUNT is returning Null value even after deleting data from Database即使从数据库中删除数据,MULE_JDBC_UDATE_COUNT 仍返回 Null 值
【发布时间】:2019-02-18 18:14:32
【问题描述】:

我有一个 Mule 流程,其中我有一个数据库删除操作:-

<jdbc-ee:connector name="Database_Global" dataSource-ref="DB_Source" validateConnections="true" queryTimeout="-1" pollingFrequency="0" doc:name="Database">
    <jdbc-ee:query key="DeleteQuery" value="delete from getData where ID=10"/>
    </jdbc-ee:connector>

<flow name="DeleteFlow" doc:name="restFlow1">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8082" doc:name="HTTP"/>
<jdbc-ee:outbound-endpoint exchange-pattern="request-response" queryKey="DeleteQuery" queryTimeout="-1" connector-ref="Database_Global" doc:name="Database (JDBC)"/>
<logger message="Deleted #[flowVars['MULE_JDBC_UDATE_COUNT']] rows" level="INFO" doc:name="Logger"/>
<set-payload value="Deleted #[flowVars['MULE_JDBC_UDATE_COUNT']] rows" doc:name="Set Payload"/>
</flow>

现在的问题是 flowVars['MULE_JDBC_UDATE_COUNT'] 正在返回 null,即使该行存在并从数据库中删除...我正在使用带有 JDBC ee 连接器的 Mule 3.5 anypoint studio .. 我想解决的另一个问题......我需要类似的东西:-

<choice doc:name="Choice">
 <when expression="#[flowVars['MULE_JDBC_UDATE_COUNT']==null] ">
<logger message="Deleted #[flowVars['MULE_JDBC_UDATE_COUNT']] rows... Failed!!!" level="INFO" doc:name="Logger"/>
<set-payload value="Deleted #[flowVars['MULE_JDBC_UDATE_COUNT']] rows ...Failed!!!" doc:name="Set Payload"/>
 </when>
<otherwise>
<set-payload value="Deleted Successfully !!!" doc:name="Set Payload"/>
 </otherwise>
</choice> 

就在 jdbc-ee:outbound-endpoint 之后,如果行被删除,我可以显示成功消息,如果没有,则显示失败消息......但是我收到如下错误:-

根异常堆栈跟踪:

[错误:无法解析的属性或标识符:]]
[附近:{... flowVars['MULE_JDBC_UDATE_COUNT']==null] ....}]

我怎样才能实现它...请帮助

【问题讨论】:

    标签: jdbc mule mule-el


    【解决方案1】:

    你有一个错字:它是MULE_JDBC_UPDATE_COUNT 而不是MULE_JDBC_UDATE_COUNT

    【讨论】:

    • 谢谢大卫......这部分已经解决......但是我如何在选择路由器中使用它......我仍然遇到异常
    • 嗨大卫......我尝试使用 但即使值为 1,它也会执行相同的消息 .. 它不会进入 else 或默认块
    • &lt;logger message="Deleted #[flowVars['MULE_JDBC_UPDATE_COUNT']] rows" 是抛出异常还是记录为空?
    • Nope David .. 它没有给出任何异常...这里是代码:-
    • 感谢 David .. 你救了我 .. 它现在可以工作了 :) ... 实际上我尝试了各种选项,例如 #[flowVars['MULE_JDBC_UPDATE_COUNT'==0]] 和 #[flowVars['MULE_JDBC_UPDATE_COUNT ==0']] 以及 #[flowVars['MULE_JDBC_UPDATE_COUNT'.equals(0)]]...但没有任何效果...现在可以正常工作...再次感谢 :)
    【解决方案2】:

    最后的工作代码是MULE_JDBC_UPDATE_COUNT :-

    <choice doc:name="Choice">
     <when expression="#[flowVars['MULE_JDBC_UPDATE_COUNT']==null] ">
    <logger message="Deleted #[flowVars['MULE_JDBC_UDATE_COUNT']] rows... Failed!!!" level="INFO" doc:name="Logger"/>
    <set-payload value="Deleted #[flowVars['MULE_JDBC_UDATE_COUNT']] rows ...Failed!!!" doc:name="Set Payload"/>
     </when>
    <otherwise>
    <set-payload value="Deleted Successfully !!!" doc:name="Set Payload"/>
     </otherwise>
    </choice> 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-05
      • 2013-05-07
      • 2017-07-27
      • 2022-10-20
      • 1970-01-01
      • 1970-01-01
      • 2019-03-31
      • 2020-08-20
      相关资源
      最近更新 更多