2013-04-02 69 views
0

我有一種情況,在我創建了代理服務的情況下,我已經使用了內聯wsdl,以便可以從try-it工具傳遞一些數據。之後,我想從try-it傳遞的數據到seq我能夠做到的。之後,沒有使用inline-wsdl。在「順序」我已經使用了一個自定義類中介,我已經設置了一個名爲「用戶」的屬性,我已經保存屬性值(用戶)屬性中介。現在我想發送這個屬性作爲響應通過序列。如何做到這一點。請幫助... 我的代理代碼是:在代理服務中返回屬性值作爲響應

<proxy xmlns="http://ws.apache.org/ns/synapse" name="ProviderPublication" transports="https,http" statistics="disable" trace="disable" startOnLoad="false"> 
    <target> 
     <inSequence> 
     <property xmlns:xs="http://www.openandaway.org/xml/BBC/" name="URI" expression="//xs:SessionID" scope="default" type="STRING"/> 
     <payloadFactory> 
      <format> 
       <p:Session xmlns:p="http://www.openandaway.org/xml/BBC/"> 
        <xs:ChannelURI xmlns:xs="http://www.openandaway.org/xml/BBC/">$1</xs:ChannelURI> 
       </p:Session> 
      </format> 
      <args> 
       <arg xmlns:ns="http://org.apache.synapse/xsd" expression="get-property('URI')"/> 
      </args> 
     </payloadFactory> 
     <log level="full"> 
      <property name="Inside_In_Sequence" value="---------Hi i am inside in sequence--------------"/> 
     </log> 
     <log level="full"> 
      <property name="PropValFromURI" expression="get-property('URI')"/> 
     </log> 
     </inSequence> 
     <outSequence> 
     <log level="full"> 
      <property name="Inside_Out_Sequence" value="-------Hi inside Out Sequence--------------------"/> 
     </log> 
     <property name="GetDataFromINSeq" expression="get-property('URI')" scope="default" type="STRING"/> 
     <log level="full"> 
      <property name="GetPropValueFromInSeq" expression="get-property('URI')"/> 
     </log> 
     <send/> 
     </outSequence> 
    </target> 
    <publishWSDL uri="http://10.224.188.87:2425/BBC1.0/services/BBCPublicationService?wsdl"/> 
    <description></description> 
</proxy> 

在上面的代碼我不能夠讓出的序列中。它沒有擊中out-sequence.Where我做錯了嗎?

回答

0

在你代理的按序,我沒有看到你將消息發送到任何後端。即我沒有看到按順序發送的部分。如果沒有消息傳出,就沒有辦法讓響應來到out-sequence。

關於對訪問由你的類中介設置,如果設置該屬性設置爲「突觸」,你可以在任何地方內的代理訪問它的作用域屬性你原來的問題。

+0

我可以比較兩個屬性值:if(property1.value == property2.value)然後「做一些編碼」。我怎麼能做到這一點? – Roy

+0

沒有直接的方法來比較兩個屬性。你將不得不寫一個自定義中介來做到這一點。但是您可以通過過濾器介體將屬性與某個值或正則表達式進行比較。 順便說一句,我的答案是否解決了你的問題? –