WSO2 ESB:动态改变终点地址

Ram*_*tin 6 uri dynamic wso2 endpoint wso2esb

如何动态设置端点地址

我在运行时将端点地址设置为属性,需要将端点地址的URI替换为其值.

如何用这个值设置地址的URI值?

Bri*_*ian 5

您可以像创建端点一样创建

<endpoint xmlns="http://ws.apache.org/ns/synapse" name="MyEndpoint">
   <http uri-template="{uri.var.full}?f={uri.var.f}{+uri.var.extra}" method="put">
   </http>
</endpoint>
Run Code Online (Sandbox Code Playgroud)

然后在调用端点'MyEndpoint'之前设置属性..要为端点解析的属性必须以uri开头.

我还发现,如果你在属性名称之前加上一个+,它就不会对它进行URI编码,因此它可以方便地动态创建参数.否则对于已知参数,你可以像上面那样用参数表f

所以...类似的东西

<property name="uri.var.full" value="http://jarhedz.com/viewtopic.php"/>
<property name="url.var.f" value="2"/>
<property name="uri.var.extra" value="&t=39"/>
<send>
    <endpoint key="MyEndpoint"></endpoint>
</send>
Run Code Online (Sandbox Code Playgroud)

应该把你带到网址http://jarhedz.com/viewtopic.php?f=2&t=39

(顺便说一句,如果你正在使用网页编辑器,它会抱怨&..它的马车就像地狱一样......保存为

&amp; 
Run Code Online (Sandbox Code Playgroud)

..并将其保存为&或使用javascript设置属性)

  • 如果URI不是http? (2认同)

She*_*era 1

使用标头中介器使用您从分配的属性中提取的值来设置“收件人”地址标头。