Setting webService endpoint dynamically using (My webMethods - Application Configuration - Portlets)

[size=14]Hi,

We have a requirement to call webService from multiple environments (DEV, QA, PROD) based on the value selected in a drop down.

The approach decided is to leverage the bulit-in portlet provided in My webMethods - Application Configuration (Web Service Configuration portlet) which has few wireable properties.

There are few pr-existing portlets on MWS which expose a preference ‘End Point URL’ which is wired with source portlet set to ‘Web Service Configuration’ and source property set to ‘None’. The switching between multiple Environments (URLs) is seamless in this case.

However, when I try to wire the preference exposed from my portlet with source portlet set to ‘Web Service Configuration’ and source property set to ‘None’, it does NOT get saved. The source portlet is rest back to ‘None’.

How is it possible that the existing portlets were able to perform this.

Also, any information on alternate approaches is highly appreciated.

Warm Regards,
Hari[/size]

Hi,

Have you read these articles?

I think an approach where you have your packages created by a CI server (hudson/jenkins) tied with the WmDeployer could make those mappings automatically.

Season’s Greetings.

[size=14]Hi Gerardo,

Thanks a lot for your response.

I did read the threads mentioned by you.

  1. The first thread talks about a change in IS endpoint address which can be configured in the web.xml file.
  2. The second thread talks about setting the endpoint address during deployment time without the need to manually configure it post-deployment.

My requirement is to dynamically switch the end point address of a webService from a portlet installed on a single MWS instance. To elaborate, imagine a dropdown with list of available environments (DEV, QA, PRD). Upon selecting a particular value from the drop down, the webService should be triggered with the corresponding endpoint address.

Could you please let me know if I missed something from your post.

Warm Regards,
Hari
[/size]

If you has binded the web service to the portlet, then you may change the endpoint address using the method:

.setEndpointAddress(endpointAddress);

Hope this help.

Regards.

Hi Hari

I have a similar situation. How did you resolve this??

Hi Noberto

You mean before the Action;we need to call these functions ?
.setEndpointAddress(endpointAddress);
So we have to change the Username and password in the same way??
I dont think this is a right approach? Any suggestions from anyone?

Hi Sajeevan:

We have implemented a “host_environment” table which have the endpoints and environment attribute, and a flag which tell us which environment is active. Also we’ve constructed a service which returns the endpoint address for any application without specifying if you are in DEV, QA or PROD. The table resolve this point.

Then, if you bind the service to any portlet the result is the same. And we use a generic user name & password to authenticate the services so, you don’t need to change this values every time you use a service.

Hope this help.

Regards.