代码之家  ›  专栏  ›  技术社区  ›  behzad

从wso2中的“To”操作获取字符串

  •  0
  • behzad  · 技术社区  · 7 年前

    我在wso2ei中创建了一个api,如下所示:

    <api xmlns="http://ws.apache.org/ns/synapse" name="Test" context="/Test" version="/" version-type="context">
     <resource methods="POST" url-mapping="/CheckTest" inSequence="TestSequence">
      <outSequence>
        <send/>
      </outSequence>
     </resource>
     <resource methods="POST" url-mapping="/TransferTest" inSequence="TestSequence">
      <outSequence>
        <send/>
      </outSequence>
     </resource>
    </api>
    

    将消息发送到序列后,我想获取url映射值作为属性操作是/Test/CheckTest for CheckTest和/Test/TransferTest for TransferTest。我想动态选择url映射值或资源。我该怎么做?

    <property name="urlMappingValue" expression=?/>
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   Maxim Fazyloff    7 年前

    您需要将资源与uri模板一起使用,然后通过uri.var访问属性中的uri部分。

    <api xmlns="http://ws.apache.org/ns/synapse" name="Test" context="/Test">
       <resource methods="POST" uri-template="/{method}">
          <inSequence>
             <property name="method" expression="get-property('uri.var.method')" scope="default" type="STRING"/>
             <switch source="get-property('uri.var.method')">
                <case regex="CheckTest">
                     ... Your logic for Check Test...
                </case>
                <case regex="TransferTest">
                     ... Your logic for Transfer Test...
                </case>           
             </switch>
          </inSequence>
       </resource>
    </api>