Saturday, October 13, 2012

In previous post (Part-1) we created Requester ABCS which is extension enabled. In this post we will move further and see what steps we need to perform before deploying Extension enabled ABCS.

Follow below steps before deployment of Extension enabled ABCS.
  • Create a concrete wsdl from abstract wsdl that is generated in last part. To create concrete wsdl  from abstract wsdl we need to add binding and service tag inside abstract wsdl.
    • Take a copy of  abstract wsdl and change it's name (remove abstract and add concrete at last). e.g "CreateAccountSiebelReqABCSImplExtensionConcrete"
    • Add Binding and Service tags inside above created wsdl file to make it concrete. Take care of naming convention while adding these tags. Below is example service tag.
                      <service name="CreateAccountSiebelReqABCSImplV1Extension">
                          <port name="CreateAccountSiebelReqABCSImplV1ExtensionServicePort"
                              binding="abcsext:CreateAccountSiebelReqABCSImplV1ExtensionServiceBinding">
                          <soap:address location="http://endpoint"/>
                        </port>
                     </service>
    • Initially, at time of development, the concrete wsdl points to sample Extension service that is shipped with foundation pack. so change your location attribute and below is example of modified service tag.
                     <service name="CreateAccountSiebelReqABCSImplV1Extension">
                          <port name="CreateAccountSiebelReqABCSImplV1ExtensionServicePort"
                              binding="abcsext:CreateAccountSiebelReqABCSImplV1ExtensionServiceBinding">
                          <soap:address location="http://localhost:8001/MirrorServlet/mirror"/>
                        </port>
                     </service>
    • MirrorServlet is a service which comes with foundation pack, function of this service is to send same data is response as it gets in request.
Here is the sample concrete wsdl file.
  • Now we should push concrete wsdl into MDS repository to the folder "ExtensionServiceLibrary".
  • In Composite.xml of the Requester ABCS a runtime wsdl with concrete binding must be specified to invoke external reference service. In composite , attributes of the element, binding.ws, cannot be empty.
  • To deploy the composite that references external web service, which is defined using an abstract wsdl, the attribute of the element binding.ws must be populated. Here WSDL refer to concrete wsdl.
<binding.ws port="[namespace of the extension service as defined in the WSDL]/V1#wsdl.endpoint(<Name of the Service as given in the WSDL>/<Name of the Porttypeas given in the WSDL>" location="[location of the concrete WSDL in the MDS]" xmlns:ns="http://xmlns.oracle.com/sca/1.0"/>
  • Below is the example of binding.ws.
<binding.ws port="http://xmlns.oracle.com/ABCSImpl/Siebel/CreateAccountSiebelCoreReqABCSImplExtension/V1#wsdl.endpoint(CreateAccountSiebelReqABCSImplV1Extension/CreateAccountSiebelReqABCSImplV1ExtensionServicePort)"
 location="oramds:/apps/AIAMetaData/AIAComponents/ExtensionServiceLibrary/Siebel/V1/CreateAccountSiebelReqABCSImplExtensionConcrete.wsdl"  xmlns:ns="http://xmlns.oracle.com/sca/1.0"/>

  • Now deploy Requester ABCS to your server.

You can download Requester ABCS Code from here.


Next post explain how we can invoke external web service from one of the ABCS extension point.

0 comments :

Post a Comment