wso2esb如何使用属性中介中的模式参数

wso2esb如何使用属性中介中的模式参数,wso2,wso2esb,hateoas,Wso2,Wso2esb,Hateoas,我想解析后端服务器发送回的位置头,以便在将其发送到客户端之前重写它。我试过了,但是没有用,我的意思是位置标题是空的。我尝试不使用pattern参数,效果很好,我可以在客户端的响应中很好地定义位置头 <property expression="get-property('LocationHeaderFromBackEnd')" name="Location" pattern="v1.*" scope="transport"/> 属性LocationHead

我想解析后端服务器发送回的位置头,以便在将其发送到客户端之前重写它。我试过了,但是没有用,我的意思是位置标题是空的。我尝试不使用pattern参数,效果很好,我可以在客户端的响应中很好地定义位置头

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

属性LocationHeaderFromBackEnd=“”

有人能帮忙吗


非常感谢。

我找到的解决方案是使用JavaScript中介来处理正则表达式,如下所示。我希望你能给我一个更好的:)


我认为您可以在属性中使用模式

例如,我的属性值为

DecodeUrl=“消息id=dd0f-678a-5678&response=ok”

对于获取消息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

组中的索引编号很重要。

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