2014-11-11 4 views
2

Я новичок в WSO2 esb, работаю с wso2esb 4.7.0, wso2dss 3.0.0.Как создать глобальную переменную в Wso2 ESB

Я хочу создать глобальную переменную и вызвать эту переменную в своих прокси услуг

Мой прокси-сервер, как показано ниже

<proxy xmlns="http://ws.apache.org/ns/synapse" name="Get_details" transports="https,http" statistics="disable" trace="disable" startOnLoad="true"> 
<target endpoint="Endpoint"> 
    <inSequence> 
    <property name="messageType" value="application/json" scope="axis2" type="STRING"/>   
    <property name="username" expression="//username/text()" scope="default" type="STRING"/> 
    <property name="password" expression="//password/text()" scope="default" type="STRING"/> 
    <log> 
     <property name="username" expression="get-property('username')"/> 
     <property name="password" expression="get-property('password')"/> 
    </log> 
    <payloadFactory media-type="xml"> 
     <format> 
      <p:select_login_op xmlns:p="http://ws.wso2.org/dataservice"> 
       <p:username>$1</p:username> 
       <p:password>$2</p:password> 
      </p:select_login_op> 
     </format> 
     <args> 
      <arg evaluator="xml" expression="get-property('username')"/> 
      <arg evaluator="xml" expression="get-property('password')"/> 
     </args> 
     </payloadFactory> 
     <property name="Get"  expression="fn:concat('http://192.168.1.201:9764/services/', 'Get_details')"/> 
      <header name="To" expression="get-property('Get')"/> 
     <send> 
     <endpoint> 
      <default/> 
     </endpoint> 
    </send> 
     </inSequence> 
     <outSequence> 
    <send/> 
     </outSequence> 
    </target> 
    <description/> 
    </proxy> 

В приведенном выше прокси я использовал функцию Concat объединить мой Url и Имя службы, здесь то, что я хочу сделать, - это то, что я хочу использовать переменную вместо url, создав глобальную переменную и назначая url как ее значение и использую эту переменную в функции concat вместо url в этом прокси и нескольких других прокси ,

Как это можно сделать?

ответ

2

Вы можете сохранить значение как Local Registry Entry и использовать его из внутренних служб прокси. Например, если у меня есть локальная запись под названием «MyURL», я могу использовать ее как ниже

synapse:get-property('MyURL') 

Другой пример;

<log level="custom"> 
    <property name="MyURL" expression="synapse:get-property('MyURL')"/> 
</log> 
0

Образец для ESB 5.0.0:

Предположим, мы имеем текущее время в свойстве с именем nowTimeProp.

<property name="nowTimeProp" expression="get-property('SYSTEM_TIME')" scope="default"/> 

Сохранение собственности в реестре:

<property name="conf:/resource/yourResourceName" type="STRING" expression="$ctx:nowTimeProp" scope="registry"/> 

Позже мы хотели бы прочитать имущества из реестра:

<property name="lastStoredInstantProp" expression="get-property('registry', 'conf:/resource/yourResourceName')"/> 
Смежные вопросы