【问题标题】:Wso2 ESB GET PROXY NAMEWso2 ESB 获取代理名称
【发布时间】:2012-08-31 07:36:09
【问题描述】:

我想知道如何按顺序获取正在使用的代理的名称:

<proxy xmlns="http://ws.apache.org/ns/synapse" name="PROXYNAME" transports="https,http" statistics="disable" trace="disable" startOnLoad="true">
   <target>
      <inSequence>
         <property> *GET-NAME OF THIS PROXY...* </property>
      </inSequence>
   </target>
   <publishWSDL uri="http://localhost/Test2/Service.asmx?wsdl" />
</proxy>

编辑 为了获得代理的名称(应包含在标题“To”中,我正在尝试将其作为代理的 inSequence:

<sequence xmlns="http://ws.apache.org/ns/synapse" name="testsequence">
   <property xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:ns="http://org.apache.synapse/xsd" xmlns:ns3="http://org.apache.synapse/xsd" name="p1" expression="$header/wsa:To" scope="default" />
   <log level="custom">
      <property xmlns:ns="http://org.apache.synapse/xsd" xmlns:ns3="http://org.apache.synapse/xsd" name="***output" expression="get-property('p1')" />
   </log>
</sequence>

没用,有什么建议吗?

【问题讨论】:

    标签: soap wso2 wso2esb esb orchestration


    【解决方案1】:

    努维奥,

    我只是想知道这样做的真正要求是什么,因为特定代理服务的名称保持不变,而特定服务完全由服务提供服务。但是,如果您真的想这样做,更简单的方法是在序列的开头有一个静态属性(使用属性中介)并为其分配代理名称。或者您可以使用表达式“$header/wsa:To”来提取“To”标头的值,其中“wsa”对应于相关的寻址命名空间,然后编写正则表达式来提取服务名称。

    干杯, 普拉巴斯

    【讨论】:

    【解决方案2】:

    用一个很简单的方法解决:get-property('To')

    【讨论】:

    • 好发现!但是,即使您使用上述方法,我之前提到的 xpath 也会在后台进行评估。唯一的区别是,通过填充消息上下文属性,用户可以更轻松地检索标题“To”的值。干杯,普拉巴斯
    【解决方案3】:

    这将返回代理名称。

    <log level="custom"> <property name="ProxyName" expression="$ctx:proxy.name"/></log>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-05
      • 1970-01-01
      • 2012-06-15
      • 1970-01-01
      相关资源
      最近更新 更多