2013-04-02 3 views
0

У меня возникла ситуация, когда я создал прокси-службу, в которой я использовал встроенный wsdl, чтобы я мог передавать некоторые данные из инструмента try-it. После этого я хочу получить данные, переданные от try-it, в seq, которые я могу сделать. После этого нет необходимости использовать inline-wsdl. В «in-sequence» я использовал пользовательский посредник класса, внутри которого я установил свойство «user», и я сохранил это значение свойства (пользователя) в Property mediator. Теперь я хочу отправить это свойство в качестве ответа через последовательность. Как это сделать. Пожалуйста, помогите ... Мой код прокси:Возвращаемое значение свойства как ответ в прокси-сервисе

<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> 

В приведенном выше коде я не могу попасть внутрь из последовательности. Это не ударяет по последовательности. Где я делаю неправильно?

ответ

0

В прокси-In-последовательности, я не вижу, что вы посылая сообщение на любой серверной. то есть я не вижу часть отправки в последовательности. Без выхода сообщения нет ответа на выход из очереди.

Что касается вашего первоначального вопроса о доступе к свойствам, установленным вашим посредником класса, если вы установите свойство с областью действия, установленной в «синапс», вы можете получить к ней доступ в любом месте вашего прокси.

+0

Могу ли я сравнить два значения свойств, например: if (property1.value == property2.value), затем «сделать некоторое кодирование». как я могу это достичь? – Roy

+0

Нет прямого способа сравнить два свойства. Вам нужно будет написать пользовательский посредник. Но вы можете сравнить свойство с некоторым значением или регулярным выражением через посредник фильтра. BTW, мой ответ исправить вашу проблему? –