我在我的配置中使用了這段代碼,我使用一個變量作爲'WHERE'子句的一部分從數據庫中檢索一些值。Mule:JDBC選擇不能使用#[variable]的值
<logger message="ZIP CODE:#[zipcode] " level="INFO" doc:name="Logger"></logger>
<jdbc-ee:outbound-endpoint exchange-pattern="request-response" queryTimeout="-1"
connector-ref="Database" doc:name="Get Information" queryKey="Select MKT">
<jdbc-ee:query key="Select MKT" value="SELECT PRIMARY,SECONDARY FROM MKT
WHERE MRZIP=#[zipcode]"/>
</jdbc-ee:outbound-endpoint>
<logger message="VALUES Selected for MKTREL : #[message.payload]"
level="INFO" doc:name="logger"></logger>
由於沒有從數據庫返回的結果,因此此行不提供輸出。
ZIP CODE:59718
INFO 2014-02-11 14:58:19,057 [[salesorderservice].SalesOrderProcess_pickOut.stage1.02]
INFO 2014-02-11 14:58:19,093 [[salesorderservice].SalesOrderProcess_pickOut.stage1.02]
: VALUES Selected for MKTREL : []
然而,當我硬編碼值,我得到正確的結果:
<jdbc-ee:query key="Select MKT" value="SELECT PRIMARY,SECONDARY FROM MKT
WHERE MRZIP=59718"/>
輸出是:
VALUES Selected for MKTREL : [{PRIMARY=76, SECONDARY=45}]
我失去了一些東西在這裏?
-S
這應該工作正常,可能是數據庫相關的問題。如果您嘗試MRZIP ='59718',會發生什麼情況? –
感謝安東,甚至我認爲這應該工作,但不會猜測。當我嘗試MRZIP ='59718'我得到一個錯誤,org.mule.api.processor.LoggerMessageProcessor:爲MKT選擇的值:[] 錯誤2014-02- 11 18:56:34,321 [[salesorderservice] .SalesOrderProcess_pickOut.stage1.02] org.mule.exception.CatchMessagingExceptionStrategy: ************************ ************************************************** ****** 消息:執行表達式「message.payload [0] .MRPMKT」失敗。 (org.mule.api.expression.ExpressionRuntimeException)。消息有效負載的類型爲:ArrayList – insaneyogi