WSO2 ESB:动态更改端点地址(WSO2 ESB : DYNAMICALLY CHANGE EN

2019-08-20 06:30发布

如何设置端点地址动态

我在运行时将属性设置端点地址和需要更换的端点地址的URI与它的价值。

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

Answer 1:

你可以创建你喜欢的端点

<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>

然后调用端点之前“MyEndpoint”设置属性..属性,要分析一个端点必须与URI开始。

我还发现,如果你的属性名称前加上一个+,它不URI编码,因此它很方便用于动态创建参数..否则,对于已知的参数,你可以为paramameter 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>

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

(顺便说一句,就像一个音符,如果你使用的网页编辑器,它会埋怨&..其越野车的地狱..它保存为

&amp; 

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



Answer 2:

使用头meditaor设置“到”头并使用默认endpoint..Check 这个职位的样品。



Answer 3:

使用头中介设置与您从您指定的属性提取值的“收件人”地址头。



Answer 4:

当服务器不公布它的WSDL,看到Myobis评论在这里 。 尝试添加端口没有成功。



Answer 5:

这种方法对我来说工作正常。

我需要创建波纹管动态URL

HTTP://本地主机:8787 / { 动态参数 }

里面的终点网址是这样的

HTTP://本地主机:8787 / {uri.var.servicepath}

设置“ 测试 ”变量作为我的动态参数 (如果需要设置表达式的值设置)。 房地产中介里设置的“测试”值。(我这样做insideproxy服务)

<property name="uri.var.servicepath" scope="default" type="STRING" value="test"/>

创建端点

在这里我创建HTTP终点

<endpoint name="ServiceEP" xmlns="http://ws.apache.org/ns/synapse">
   <http method="post" uri-template="http://localhost:8787/{uri.var.servicepath}"/>
</endpoint>

那么你的代理服务或API里面添加这个端点

<send>
   <endpoint key="ServiceEP"/>
</send>

最后,代理这个样子

<inSequence>
   <property name="uri.var.servicepath" scope="default" type="STRING" 
   value="test"/>

   <send>
      <endpoint key="SurepayVASAppsEP"/>
    </send>
</inSequence>

这样你可以改变每一个网址parameter.Ex-:

HTTP:// {uri.var.hostname} {uri.var.port} / {uri.var.servicepath}



文章来源: WSO2 ESB : DYNAMICALLY CHANGE ENDPOINT ADDRESS