2015-02-23 1 views
0

В DataPower, я должен прочитать действие мыла входящих запросов. После чтения мне нужно извлечь последнюю строку после разделителя и сохранить ее в переменной. Затем мне нужно изменить SoapAction и установить новое значение для каждого запроса, выходящего за пределы Datapower.Мыло Действие и подстрока в DataPower

У меня есть

SOAPAction="http://service.example.com/version10_1/getMessage" 

Я хочу, чтобы он, как

SOAPAction="http://service.example.com/version11_1/getMessage" 

У меня есть идея использовать функции, как показано ниже. Пожалуйста, предложите на 1. как я могу подстроить значение «getMessage» из заголовка. Я хочу использовать его дальше, сохраняя в переменной .. 2. И какой лучший способ изменить входящее SOAPAction и отправить его новым. Только версия изменена с версии 10_1 до 11_1.

<xsl:template name="HeaderChange"> 

    <xsl:variable name="IncomingRequest" select="dp:request-header('SOAPAction')"/> 

    <xsl:variable name="Mymethod"><xsl:value-of select=(get the  getMessage here)/></xsl:variable> 

    <dp:set-http-request-header name="SOAPHeader" value="'to modify old SOAPAction'"/> 

     <dp:freeze-headers/> 
     </xsl:template> 

ответ

1

Кажется, это работа для стандартных подстрок-до и подстрока после функций XPath.

<xsl:value-of select="concat(
    substring-before($IncomingRequest, 'version10_1'), 
    'version11_1', 
    substring-after($IncomingRequest, 'version10_1'))"/> 
0

Я думаю, что вы можете сделать это, используя политику перезаписи URL-адресов в действии перезаписи заголовка.

0

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

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