how can i set endpoint address dynamically
i set endpoint address in to a property in run time and need to replace URI of endpoint address with it's value.
how can i set URI value of address with this value?
how can i set endpoint address dynamically
i set endpoint address in to a property in run time and need to replace URI of endpoint address with it's value.
how can i set URI value of address with this value?
You can create your endpoint like
<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>
Then before calling the endpoint 'MyEndpoint' set the properties .. the properties, to be parsed for an endpoint must begin with uri.
I also found out, that if you put a + before the property name, it doesn't URI encode it, so it's handy for creating parameters on the fly.. otherwise for known parameters, you can do like above for paramameter f
so .. something like
<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>
should bring you to the url http://jarhedz.com/viewtopic.php?f=2&t=39
(btw just as a note, if you're using the web editor, it'll complain about the & .. its buggy as hell .. save it as
&
.. and that saves it as & or set the property using javascript )
Use Header meditaor to set "to" header and use default endpoint..Check this post for sample.
Use header mediator to set the "To" Address header with the value you extract from your assigned property.
When the server doesn't publish its WSDL, see Myobis comment here. Tried addPort without success.
This method is worked for me correctly.
I need to create bellow dynamic url
http://localhost:8787/{dynamic parameter}
Inside the end point url is like this
http://localhost:8787/{uri.var.servicepath}
Set "test" variable as my dynamic parameter (If you need to set Expression value set it). Set "test" value inside the property mediator.(I did this insideproxy service)
<property name="uri.var.servicepath" scope="default" type="STRING" value="test"/>
create endpoint
In here I created HTTP End point
<endpoint name="ServiceEP" xmlns="http://ws.apache.org/ns/synapse">
<http method="post" uri-template="http://localhost:8787/{uri.var.servicepath}"/>
</endpoint>
Then add this endpoint inside your Proxy service or API
<send>
<endpoint key="ServiceEP"/>
</send>
Finally your proxy look like this
<inSequence>
<property name="uri.var.servicepath" scope="default" type="STRING"
value="test"/>
<send>
<endpoint key="SurepayVASAppsEP"/>
</send>
</inSequence>
Like this you can change every url parameter.Ex-:
http://{uri.var.hostname}:{uri.var.port}/{uri.var.servicepath}