如何在WSO2序列中定义切换情况下的正则表达式条件?

时间:2017-01-19 14:59:31

标签: wso2 wso2-am

我定义了一个具有Switch ... Case mediator的序列,并根据WSO2中的RegEx检查条件。我的下面定义有什么问题?它应该执行第一种情况。但是,日志打印始终是交换机的默认部分。        在代码示例下面,当我打印PATH_PROP时,返回“/rest/api/v1.0/fee”,这是我在URL中的资源路径。我想匹配,在PATH_PROP变量中是否有单词'fee'。在我的情况下,它是..所以,我期望去案例1.我尝试了RegEx的“费用”,“。费用。”,“\ bfee \ b”等等。他们都没有工作。我的定义有什么问题?
感谢您的帮助!!

<property expression="get-property('axis2','REST_URL_POSTFIX')"
name="PATH_PROP" scope="default" type="STRING"/>
<switch source="$ctx:PATH_PROP">
<case regex="fee">
  <log level="custom">
    <property name="CUSTOM_MESSAGE" value="CASE 1 *************"/>
  </log>
  <header name="To" scope="default" value="https://localhost:9448/am/sample/pizzashack/v1/api/menu"/>
</case>
<case regex=".*application/xml.*">
  <property name="messageType" scope="axis2" type="STRING" value="application/xml"/>
</case>
<default>
  <property name="messageType" scope="axis2" type="STRING" value="text/xml"/>
  <log level="custom">
    <property name="CUSTOM_MESSAGE" value="CASE_DEFAULT *************"/>
  </log>
  <header name="To" scope="default" value="http://was.apv.local:9080/rpe/rest/api/v1.0/fee?appID=1"/>
</default>

1 个答案:

答案 0 :(得分:0)

用户正则表达式“.*fee.*”以匹配网址中的“费用”字样。如果你想匹配“/费用”,那么“.*/fee.*

例如匹配$ ctx中的“费用”:PATH_PROP

<switch source="$ctx:PATH_PROP">
<case regex="*.fee.*">
------------------
</case>
<default>
------
</default>