In my previous two posts Part-1 and Part-2, I explained how we can design & develop extension enabled connector service (Requester or Provider ABCS). In this post I will show you how we can call external web service from ABCS extension points.
Follow below steps to invoke external web service from ABCS extension point.
Step 1.) Create a simple composite (external web service) which will be called from ABCS extension point.
Follow below steps to invoke external web service from ABCS extension point.
Step 1.) Create a simple composite (external web service) which will be called from ABCS extension point.
- Create a composite with name "CreateAccountSiebelReqABCSImplExtensionService". We should follow naming conventions while creating external web service that we are going to call from ABCS extension point.
{ABCSName}ExtensionService
- Change the service name during creating BPEL process to match that we have in concrete wsdl.
- Choose "Based on a WSDL" template and use abstract wsdl (CreateAccountSiebelReqABCSImplExtensionAbstract.wsdl) which is there in ABCS project folder to create external web service. If you don't have that abstract wsdl then you can take concrete wsdl from MDS repository "ExtensionServiceLibrary" folder. But before using concrete wsdl don't forget to remove binding and service tag to make it abstract wsdl.
- Now go to composite.xml file and check what is the port Name. If it is not same as there is concrete wsdl then change it to match with that.
<service
name="CreateAccountSiebelReqABCSImplV1Extension"
ui:wsdlLocation="CreateAccountSiebelReqABCSImplExtensionAbstract.wsdl">
<interface.wsdl
interface="http://xmlns.oracle.com/ABCSImpl/Siebel/CreateAccountSiebelCoreReqABCSImplExtension/V1#wsdl.interface(CreateAccountSiebelReqABCSImplV1ExtensionService)"/>
<binding.ws
port="http://xmlns.oracle.com/ABCSImpl/Siebel/CreateAccountSiebelCoreReqABCSImplExtension/V1#wsdl.endpoint(CreateAccountSiebelReqABCSImplV1Extension/CreateAccountSiebelReqABCSImplV1ExtensionServicePort)"/>
</service>
- Choose operation, means for which extension point you want to call this service.
- Change location attribute value for service tag inside extension concrete wsdl of ABCS which is there in MDS "ExtensionServiceLibrary" folder. Earlier it was pointing to Mirror service which comes default with foundation pack, but now it should point to external service endpoint.
<service
name="CreateAccountSiebelReqABCSImplV1Extension">
<port name="CreateAccountSiebelReqABCSImplV1ExtensionServicePort"
binding="abcsext:CreateAccountSiebelReqABCSImplV1ExtensionServiceBinding">
<soap:address
location="http://localhost:8001/soa-infra/services/default/CreateAccountSiebelReqABCSImplExtensionService/CreateAccountSiebelReqABCSImplV1Extension"/>
</port>
</service>
Here is the sample of the Modified concrete wsdl.
- Change Service Configuration property inside AIAConfigurationProperties.xml file to enable extension.
Now we are ready to call external web service from one of the ABCS extension point. Test ABCS and see the results.
You can download the code from here.