我定义了一个具有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>
答案 0 :(得分:0)
用户正则表达式“.*fee.*
”以匹配网址中的“费用”字样。如果你想匹配“/费用”,那么“.*/fee.*
”
例如匹配$ ctx中的“费用”:PATH_PROP
<switch source="$ctx:PATH_PROP">
<case regex="*.fee.*">
------------------
</case>
<default>
------
</default>