2016-02-10 5 views
0

Я хотел бы проанализировать заголовок местоположения, отправляемый обратно сервером конца, чтобы переписать его перед отправкой его клиенту. Я пробовал это, но не работает, я имею в виду, что заголовок Location пуст. Я пробовал без параметра шаблона, и он хорошо работает. Я могу иметь заголовок местоположения, хорошо определенный в ответ со стороны клиента.wso2esb Как использовать параметр шаблона из посредника свойства

<property expression="get-property('LocationHeaderFromBackEnd')" 
      name="Location" pattern="v1.*" scope="transport"/> 

Свойство LocationHeaderFromBackEnd = "http://host:port/v1/resource/uid"

Может кто-то предоставить некоторую помощь?

спасибо.

ответ

0

Решение, которое я нашел, это использовать JavaScript-посредник для обработки регулярного выражения, как показано ниже. Я надеюсь, что вы можете предоставить мне лучший вариант :)

<script language="js"><![CDATA[var str = mc.getProperty("LocationHeaderFromBackEnd"); 
     var re = /.v1.*/; 

    var m; 

    if ((m = re.exec(str)) !== null) { 
     if (m.index === re.lastIndex) { 
      re.lastIndex++; 
     } 
     // View your result using the m-variable. 
     // eg m[0] etc. 
    } 
    mc.setProperty("LocationHeaderParsed", m[0]);]]> 
    </script> 
    <property expression="get-property('LocationHeaderParsed')" name="Location" scope="transport"/> 
0

Я думаю, вы можете использовать шаблон в свойстве.

Например мое значение свойства

DecodeUrl = "message_id = dd0f-678a-5678 & ответ = нормально"

для прибудете message_id и ответ, который мы можем использовать этот код:

<property xmlns:ns="http://org.apache.synapse/xsd" 
      name="message_id" 
      expression="get-property('DecodeUrl')" 
      pattern="(message\_id\=)(.*)(&amp;)(.*)" 
      group="2"/> 
<property xmlns:ns="http://org.apache.synapse/xsd" 
      name="response" 
      expression="get-property('DecodeUrl')" 
      pattern="(message\_id\=)(.*)(&amp;)(response=)(.*)" 
      group="5"/> 
<log level="custom"> 

выход:

dd0f-678a-5678

ОК

Важный номер индекса в группе.

Смежные вопросы