2015-02-10 75 views
2

我正在寻找使用在单独的数据库中配置的URL来创建发送中介。如何在WSO2 ESB中为发送中介分配属性的URL?

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

如何创建一个发送使用此属性作为发送的URL?

喜欢的东西..

<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')有没有运气要么)

使用URL刻录中保没有帮助我,因为操作不允许的表达,只有value

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

我不知道,即使上述工作。我怎么会是ABL e定义它也是POST ..

任何帮助将不胜感激!

回答

1

您错过了您的属性名称的uri.var前缀。这page有这方面的更多细节。

URI模板允许RESTful URI包含可以在中介运行时期间使用其名称具有“uri.var”的属性值填充的变量。字首。

这里是从端点的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> 
+0

感谢沃伊库本成功了! – Brian 2015-02-10 15:03:13

+1

我能够创建一个端点只有一个参数.. {uri.var.full}作为uri模板' ' ,然后用 称之为'<属性名=” URI .var.full”表达= “获取属性( 'myurl')”> <属性名= “uri.var.method” 值= “POST”> <端点键= “myEndpoint”> ' uri.var.method似乎工作o(通过UI进行编辑,将'method'uri.var.method替换为静态GET ..可以忍受这一点) – Brian 2015-02-10 15:15:18