Tuesday, November 26, 2013

Creating JCA Adapters with Abstract WSDL - Oracle OSB

Creating JCA Adapters with Abstract WSDL - Oracle OSB

Oracle OSB provides the option to create JCA adapters to connect to different resources through Proxy Services and Business Services.

The JCA adapter needs to be created through JDevelper, JDeveloper creats a Abstract WSDL and a JCA adapter file.

When creating Busines Service through eclipse, eclipse provides the option to generating the service by right clicking the JCA file.

But through OSB console, we will not be able to generate the Business Service with the Abstract WSDL(WSDL Web Service)  because it will not have any binding or service defined.

If we are adding the binding/service to the abstract wsdl and creating the Business servive the following exception will be thrown

An error occured while validating JCA transport endpoint properties, exception: oracle.tip.adapter.sa.impl.fw.ext.org.collaxa.thirdparty.apache.wsif.WSIFException: Please specify a Service. Choices are: {{http://xmlns.oracle.com/pcbpel/adapter/ftp/CRM61OM/Project1/putFTP}putFTP, {http://xmlns.oracle.com/pcbpel/adapter/ftp/CRM61OM/Project1/putFTP}putFTP_ep} oracle.tip.adapter.sa.impl.fw.ext.org.collaxa.thirdparty.apache.wsif.WSIFException:

Approach to resolve the issue

To resolve this issue create a Concrete WSDL file with JCA transport binding and service(Import the Abstract wsdl), create the Business service based on this .

xml version="1.0" encoding="UTF-8"?>
<definitions targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/ftp/CRM61OM/Project1/putFTP" name="putFTP-concrete" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/ftp/CRM61OM/Project1/putFTP" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<import namespace="http://xmlns.oracle.com/pcbpel/adapter/ftp/CRM61OM/Project1/putFTP" location="putFTP.wsdl"/>
<binding name="Put_ptt-binding" type="tns:Put_ptt">
<soap:binding style="document" transport="http://www.bea.com/wli/sb/transports/jca"/>
<operation name="Put">
<soap:operation soapAction="Put"/>
<soap:body use="literal"/>
<service name="putFTP-service">
<port name="putFTP-port" binding="tns:Put_ptt-binding">
<soap:address location="jca://eis/ftp/AAAProductPub"/>

No comments:

Post a Comment