如何为WSO2 ESB中的Send Mediator分配属性的URL?

时间:2015-02-10 12:29:51

标签: url wso2 wso2esb send synapse

我希望使用在单独数据库中配置的网址来创建发送中介。

我将问题中的网址分配给我的序列中的属性myurl

如何使用此属性创建发送作为发送网址?

像...这样的东西。

<property name="myurl" value="http://www.google.com"></property>
<send>
  <endpoint>
    <http method="put" uri-template="{myurl}"></http>
  </endpoint>
</send>

错误..(uri-mapping并在上面的端点中使用get-property('myurl')等也没有运气。

使用网址ReWriter Mediator并没有帮助我,因为动作不允许表达,只有value

<rewrite>
  <rewriterule>
    <action value="get-property('myurl')" type="set" fragment="full"></action>
  </rewriterule>
</rewrite>
<send></send>

我不确定,即使上述情况有效......我怎么能定义它也是POST ..

感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

您缺少属性名称的uri.var前缀。这个page有更多细节。

  

URI模板允许RESTful URI包含可以在中介运行时使用名称具有&#34; uri.var的属性值填充的变量。&#34;前缀。

以下是使用属性名称的端点的WSO2文档中的示例:

<endpoint xmlns="http://ws.apache.org/ns/synapse" name="HTTPEndpoint">
    <http uri-template="http://localhost:8080/{uri.var.servicepath}/restapi/{uri.var.servicename}/menu?category={uri.var.category}&amp;type={uri.var.pizzaType}" method="GET"></http>
</endpoint>

来自代理服务的调用端点的部分:

<inSequence>           
    <property name="uri.var.servicepath" value="PizzaShopServlet"/>
    <property name="uri.var.servicename" value="PizzaWS"/>
    <property name="uri.var.category" value="pizza"/>
    <property name="uri.var.pizzaType" value="pan"/>
    <send>
        <endpoint key="HTTPEndpoint"/>
    </send>
</inSequence>