Dynamic partner link in Oracle SOA Suite

Dynamic partner link feature in oracle SOA enables you to dynamically assign an endpoint reference to a partner link for use at runtime.

To create a dynamic partner link please follow the below steps.

Create a a wsdl that contains multiple services to use the same porttype.

<service name=”MyService1″>
<port name=”MyServicePort” binding=”tns:MyServicePortBinding”>
<soap:address location=”http://localhost:7001/soa-infra/services/default/MyService1/MyService1_client_ep”/&gt;
</port>

</service>
<service name=”MyService2″>
<port name=”MyServicePort” binding=”tns:MyServicePortBinding”>
<soap:address location=”http://localhost:7001/soa-infra/services/default/MyService2/MyService2_client_ep”/&gt;
</port>
</service>

<service name=”MyService3″>
<port name=”MyServicePort” binding=”tns:MyServicePortBinding”>
<soap:address location=”http://localhost:7001/soa-infra/services/default/MyService3/MyService3_client_ep”/&gt;
</port>
</service>

Create a asynchronous BPEL process and drag and drop a web service in the external reference of the composite.
Define this web service based on the WSDL you have created now.

Import the “ws-addressing”schema from the following url in to your jdeveloper and save it as ws-addressing.xsd

http://schemas.xmlsoap.org/ws/2003/03/addressing/

Create a variable based on the end point reference in the schema.

Now go to your BPEL process and assign following to the endpointreference variable

<EndpointReference xmlns=”http://schemas.xmlsoap.org/ws/2003/03/addressing”>
<Address/>
<ServiceName/>
</EndpointReference>

Create one more variable EndPointUrl to store the end points of the services. The end point we will derive dynamically based on the input condition. Map this end point URL to the Address field in the EndPointReference.

Finally assign the EndPointReference variable to the partner link.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s