Получить значение свойства в JavaScript с помощью посредника скрипта

Есть ли способ внутри кода javascript из посредника сценариев WSO2 ESB получить значение свойства, когда это свойство имеет область, отличную от "по умолчанию"?

В случае свойства с областью действия по умолчанию:

get-property('MyProperty') 

OR

<script language="js">
   mc.getProperty("MyProperty");
</script>

В случае собственности с областью применения "транспорт":

get-property('transport','FILE_NAME')

OR

<script language="js">
   mc.????????
</script>

person Jean-Michel    schedule 03.04.2014    source источник
comment
Похоже, вы не можете получить свойства с помощью mc.get-property ()   -  person Reza Ameri    schedule 15.04.2014


Ответы (4)


Похоже, вы не можете получить свойства других областей видимости, кроме синапса, используя

mc.get-property («Имя свойства»)

поскольку mc является экземпляром Synapse.MessageContext, чтобы получить другие свойства контекста сообщения, я делаю что-то подобное в java, я не знаю, применимо ли это в javascript или нет. Я делаю это для свойств контекста сообщения оси 2. Здесь «контекст» - это экземпляр Synapse.MessageContext.

org.apache.axis2.context.MessageContext axis2MessageContext;
            axis2MessageContext = ((Axis2MessageContext)context).getAxis2MessageContext();
person Reza Ameri    schedule 15.04.2014

Вы можете получить недвижимость, используя этот код:

<property name="ComingRoles" expression="your property or value" scope="default"  />
<script language="js">var rolelist = mc.getProperty('ComingRoles');</script>

Тестирую с WSO2ESB 4.9.0

Обновление:

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

Например:

<property name="authheader" expression="get-property('transport','X-JWT-Assertion')"></property>
<script language="js"> var temp_auth = mc.getProperty('authheader')
</script>

Он должен работать с ESB 4.5.0 и выше.

person Milad Kianmehr    schedule 11.10.2015
comment
когда это свойство имеет область действия, отличную от значения по умолчанию? - person Jean-Michel; 12.10.2015
comment
Я тестирую его с областью действия по умолчанию. Я думаю, это работа с другим прицелом. Если нет, определите его в области по умолчанию. См. Это: sanjeewamalalgoda.blogspot.com/2014/08 / - person Milad Kianmehr; 13.10.2015
comment
Я нашел статью о получении собственности из области передачи. Автор определяет свойство в области по умолчанию. Вы можете увидеть эту ссылку: wso2.com/library/articles/2013/07/. Я обновил свой ответ этим фактом. Ваш вопрос очень полезен. пожалуйста, сообщите мне, правдив ли этот ответ. - person Milad Kianmehr; 11.11.2015

Я не думаю, что у mc есть get-property метод.
Script Mediator использует Apache Bean Scripting Framework для поддержки языка сценариев. А переменная mc представляет собой реализацию MessageContext с именем ScriptMessageContext.java.

[Вот класс _7 _] [1]

[1]: https://synapse.apache.org/apidocs/org/apache/synapse/mediators/bsf/ScriptMessageContext.html
Здесь вы можете проверить любое свойство (метод) области DEFAULT.

В противном случае вам может потребоваться поместить это свойство области в настраиваемое свойство. Нравится:

<property name="CustomAction" expression="get-property('Action')"/>

Затем используйте getProperty ("CustomAction") в JS, чтобы получить их.

person James    schedule 16.07.2015

Я сделал что-то вроде ниже

 <property expression="json-eval($.)" name="JSONPayload"
      scope="default" type="STRING"/>
    <script language="js"><![CDATA[var pl_string = mc.getProperty("JSONPayload");
                    var newPayload="{\"event\": " + pl_string + "}";
                    mc.setPayloadJSON(newPayload);]]></script>
person Santhosh Hirekerur    schedule 02.11.2016