我使用mule的應用程序非常簡單。此應用程序應從通過http請求發送的值(人員名稱)定義的數據庫中檢索一些值。 我這裏使用的使用的示例:https://docs.mulesoft.com/mule-user-guide/v/3.6/database-connector-examples根據mule中http的屬性獲取數據庫中的值
我的流程:
<http:listener-config name="HTTP_Listener_Configuration_DB2"
host="localhost" port="8092" doc:name="HTTP Listener Configuration" />
<flow name="database_connector_mysql2Flow">
<http:listener config-ref="HTTP_Listener_Configuration_DB2"
path="/*" doc:name="HTTP" />
<db:select config-ref="MySQL_Configuration" doc:name="Database">
<db:parameterized-query><![CDATA[select Id, name, lastname, Email, phone from employee where name=#[message.inboundProperties['name']];]]></db:parameterized-query>
</db:select>
<json:object-to-json-transformer doc:name="Object to JSON"/>
</flow>
運行的應用程序後,我設置以下網址瀏覽器:
http://localhost:8092/?name=Karam
但是,所有我得到的是隻有空括號[]
我懷疑這部分mySql查詢不正確:
其中name =#[message.inboundProperties [ '名']]
任何幫助嗎?
我使用另一個數據庫。我有'卡拉姆' –
也recod名稱另外,如果我使用以下查詢:選擇ID,姓名,姓氏,電子郵件,來自員工的電話,其中名稱='卡拉姆';它工作沒有問題。只有當我使用name =#[message.inboundProperties ['name']]; –
這就是它在答案中所說的......你在'http:// localhost:8092 /?name = Karam'中傳遞查詢參數,並且在你正在使用'inboundProperties'的sql查詢中不起作用...使用'#[message.inboundProperties.'http.query.params'.name]'而不是 –