2014-09-20 68 views
0

我面臨的一個奇怪的問題工作正確的......我的騾子流程如下: -流量變量不是DB select查詢

<jdbc-ee:connector name="Database_Global" dataSource-ref="DB_Source" validateConnections="true" queryTimeout="-1" pollingFrequency="0" doc:name="Database"> 
<jdbc-ee:query key="InsertQuery" value="INSERT INTO getData(ID,NAME,AGE,DESIGNATION)VALUES(#[flowVars['id']],#[flowVars['name']],#[flowVars['age']],#[flowVars['designation']])"/> 

<jdbc-ee:query key="RetriveQuery" value="Select * from getData where ID=#[flowVars['id']] "/> 
</jdbc-ee:connector> 

<flow name="MuleDbInsertFlow1" doc:name="MuleDbInsertFlow1"> 
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8082" path="mainData" doc:name="HTTP"/> 
<cxf:jaxws-service service="MainData" serviceClass="com.vertu.services.schema.maindata.v1.MainData" doc:name="SOAPWithHeader" /> 
<component class="com.vertu.services.schema.maindata.v1.Impl.MainDataImpl" doc:name="JavaMain_ServiceImpl"/> 
<mulexml:object-to-xml-transformer doc:name="Object to XML"/> 

    <choice doc:name="Choice"> 
    <when expression="#[message.inboundProperties['SOAPAction'] contains 'retrieveDataOperation']"> 
     <processor-chain doc:name="Processor Chain"> 
     <set-variable variableName="id" value="#[xpath('//id').text]" doc:name="Variable"/> 
     <logger message="ID from req #[flowVars['id']]" level="INFO" doc:name="Logger"/> 
     <jdbc-ee:outbound-endpoint exchange-pattern="request-response" queryKey="RetriveQuery" queryTimeout="-1" connector-ref="Database_Global" doc:name="Database (JDBC)"/> 

     <choice doc:name="Choice"> 
       <when expression="#[message.payload.isEmpty()]"> 
       <processor-chain> 
        <!-- Data not exists .. We cannot display -->    
        <logger message="No records found in Database !!!" level="INFO" doc:name="Logger"/> 
        </processor-chain> 
       </when> 
        <otherwise> 
        <processor-chain> 
         <!-- Data exists .. We cannotdisplay --> 
        <logger message="The Data retrieved from the Database" level="INFO" doc:name="Logger"/> 
        </processor-chain> 
        </otherwise> 
       </choice> 

現在的問題是,每當我使用查詢RetriveQuery: - Select * from getData where ID=#[flowVars['id']]

它進入記錄器顯示的選擇塊在數據庫中找不到記錄!!! ..但是你可以看到我放在一個記錄器調用之前DB出境SQL查詢

<logger message="ID from req #[flowVars['id']]" level="INFO" doc:name="Logger"/> <jdbc-ee:outbound-endpoint exchange-pattern="request-response" queryKey="RetriveQuery" queryTimeout="-1" connector-ref="Database_Global" doc:name="Database (JDBC)"/>

它打印#[flowVars['id']],我成功地獲得價值.. 但我不知道爲什麼它是要去<when expression="#[message.payload.isEmpty()]">塊...

如果我使用RetriveQuery如下:Select * from getData where ID=22 那麼它的成功讓查詢ID的價值.. 請讓我知道它爲什麼沒有得到婷在SQL查詢的值,如果我用一個flowVars .. 它成功地執行了插入和更新查詢,但不選擇..

請注意: -此ID在SELECT * FROM的getData值其中ID是整數..

回答

0

這很奇怪。

嘗試清理並重新構建項目:運行的版本可能不使用最新的配置。

+0

清潔和建設問題該項目再次運作.. – 2014-09-20 18:56:17

0

是的,這是一個奇怪的,我發現清潔和重新建設的項目工作室大衛提示工作..可能是有在拿起最新的配置,並反映在proect