Monday, August 8, 2011

Alter external web service endpoint in Oracle SOA

When we invoke one external web service from Oracle SOA component such as BPEL the end point of this web service sometimes is defined in the service wsdl file:

But in reality most time the end point specified in wsdl can not be used since the SOA component application may be deployed on different environments and the end points of the external web services vary depending on the various environments.

Oracle SOA 11g provides several ways to allow you change the end point during the deployment.

One way is to use Oracle SOA EM to do so.

First select the deployed SOA application in Oracle SOA EM and the dashboard of this application is displayed on the right panel.

Then go down to the bottom in the right panel and find Services and References and click on the web service reference to be changed.

Then click on the tab Properties. It will display as the below:

Then type in the new end point address in End Point Address text edit and then click on Apply button.

However the better way to do this is through config plan. You can create the config plan from JDeveloper by
right clicking composite.xml file and then select Generate Config Plan.

In the config plan you can specify the property value you want to replace with new value and when you deploy your SOA application you need to attach this config plan. After the deployment the new value from the config plan will be used.

Here is one example of config plan:

Here in the config plan we specify to replace the NO Target Address in TestProviderService.wsdl with new end pint address.

Then when you deploy the application with JDeveloper remember to attach this config plan.

After the successful deployment the new end point value will be used for this external web service.

No comments:

Post a Comment