Tuesday, June 23, 2015

#408 First steps with the Cloud App adapters and the Cloud Adapter SDK - Installation

Download the software from here -

BTW. I am installing this on top of SOA 12.1.3 BP1

Download the 3 files specified -

I unzip the first of the apps files -

I unzip the second -

Install the relevant version for your O/S.

Specify your SOA 12c BP1 Home -

Unzip the cloud-adapters zip -

Follow the instructions in the README -

Essentially install 20680367 and then 20780464.

Re-start JDeveloper -

Note the Cloud adapters available -

Post-Install Steps

For Security setup etc. for specific app adapters, please see the following doc

That doc also has some general post-install steps , you need to execute.

The first step is to deploy the cloudsdk.ear to weblogic.

This file can be found here -

I now need to grant permissions to access the credential store.
This will be required when the adapter needs to authenticate with the
SaaS app.

I need to grant this permission to the jca-binding.jar file.

First step, find the file - where name includes jca

Then check the box -

This is what we need to add -
  • Permission Classoracle.security.jps.service.credstore.CredentialAccessPermission
  • Resource Namecontext=SYSTEM,mapName=oracle.wsm.security,keyName=*
  • Permission Action*

The Result -

You can now proceed to create csf-keys for your SaaS apps.

I have a demo cloud app, running on weblogic,
so I enter the following data -

Now, say I want to connect to Service Cloud, Sales Cloud etc.

I would also need to import the certificate.

Here is an example for ServiceCloud (RightNow).
Btw. I have already downloaded the cert from my browser.

I also add a CSF-Key for ServiceCloud(RightNow)

If your wsdls are ca certified, then you need to update 

the setDomainEnv file as follows -

search the file for "truststore" and edit as follows -

Original is -

set EXTRA_JAVA_PROPERTIES=%EXTRA_JAVA_PROPERTIES% -Dsoa.archives.dir=%SOA_ORACLE_HOME%\soa -Dsoa.oracle.home=%SOA_ORACLE_HOME% -Dsoa.instance.home=%DOMAIN_HOME% -Dtangosol.coherence.log=jdk -Djavax.xml.soap.MessageFactory=oracle.j2ee.ws.saaj.soap.MessageFactoryImpl -Dweblogic.transaction.blocking.commit=true -Dweblogic.transaction.blocking.rollback=true -Djavax.net.ssl.trustStore=%WL_HOME%\server\lib\DemoTrust.jks -Doracle.xml.schema\Ignore_Duplicate_Components=true -Doracle.xdkjava.compatibility.version=11.1.1 -Doracle.soa.compatibility.version=11.1.1

Change the entry highlighted to -

set EXTRA_JAVA_PROPERTIES=%EXTRA_JAVA_PROPERTIES% -Dsoa.archives.dir=%SOA_ORACLE_HOME%\soa -Dsoa.oracle.home=%SOA_ORACLE_HOME% -Dsoa.instance.home=%DOMAIN_HOME% -Dtangosol.coherence.log=jdk -Djavax.xml.soap.MessageFactory=oracle.j2ee.ws.saaj.soap.MessageFactoryImpl -Dweblogic.transaction.blocking.commit=true -Dweblogic.transaction.blocking.rollback=true  -Djavax.net.ssl.trustStore=kss://system/trust -Djavax.net.ssl.trustStoreType=kss -Doracle.xml.schema\Ignore_Duplicate_Components=true -Doracle.xdkjava.compatibility.version=11.1.1 -Doracle.soa.compatibility.version=11.1.1

Configure the Proxy Server for Runtime Use 

Edit setDomainEnv again -

Add the following line to EXTRA_JAVA_PROPERTIES:
-Dhttp.proxyHost=www-proxy.us.company_name.com -Dhttp.proxyPort=80
-Dhttps.proxyHost=www-proxy.us.company_name.com -Dhttps.proxyPort=80

Where company_name is your company name.

Restart the server.

Testing a demo Cloud Adapter

The demo cloud adapter will provide connectivity to the demo cloud app.

I deploy my demo cloud app, this will be my sample SaaS app that allows me to
execute CRUD commands on some basic business objects, such as Account.
It is essentially a simple synchronous service, deployed to my local weblogic instance.

I then need to deploy the demo cloud adapter, that will provide connectivity to the aforementioned SaaS app. The adapter file is mycloudadapter.jar
Firstly, I need to deploy to the design time.

I do this by copying it to the /dropins directory

Then, I need to deploy the same jar for runtime -
I do this by copying it to the /soa/soa/modules/oracle.cloud.adapter_12.1.3 directory

I need to edit the setDomainEnv file again, in order
to add this jar to the POST_CLASSPATH variable.

set POST_CLASSPATH=D:\Work\envs\CloudAdapterSdk\soa\soa\modules\oracle.cloud.adapter_12.1.3\mycloudadapter.jar;%POST_CLASSPATH%

Then I restart the server.

Create a Composite that leverages the demo adapter

As you can see, MyCloudAdapter is now available in the component palette.

I now leverage this adapter in a simple composite -

Here I am simply creating an Account.

Naturally, I specify the key defined earlier.
This info is contained in the relevant .jca file in the JDev project.

I deploy

I want to test, but note, the Test button in em is disabled -

However, I can test it over the following url -

https://localhost:7102/integration/flowsvc/mycloudadapter/default/CATest/MycloudadapterService/v1.0/?WSDL using SOAP-UI, for example.

Note the makeup of the URL -


I execute the test - all the BPEL process does is essentially echo back the accountID.

This excellent demo, written by colleagues, has a UI component that allows me to browse the "cloud" app's
business objects -

Mine is the Irish entry, last, but not least, on the list.

Looks good!


Anonymous said...


Your posts arevery useful. Can you give us more insight on mycloudadapter?
How do we create our own custom cloud adapters?


Anonymous said...


I had a question wrt the post.I understand that using the SDK we can create custom cloud adapters but say if we are connecting to something like Taleo which is cloud based, but exposes web services as soap apis, do we create custom adapters or simply use the Soap adapter present in 12c.

Thank you,

Niall Commiskey said...

Leverage the Taleo web services via SOAP adapter until Taleo adapter becomes available.

Abhishek said...

Hi Niall

Can u please share any tutorial or documentation on creating custom cloud adapters.


Niall Commiskey said...

Are you an Oracle partner?