Tuesday, September 16, 2014

Deploy custom JARs or Classes to Oracle SOA for BPEL consumption

Need to include custom JARs or classes in Weblogic so that your BPEL process can consume them?

Add JARs to oracle.soa.ext.jar Manifest

Navigate to $ORACLE_HOME/soa/modules/oracle.soa.ext_11.1.

Place any requisite JARs in this directory. You may also place custom classes in the /classes directory.

SOA comes with a version of Ant in $MW_HOME/modules/org.apache.ant_1.7.1; however, when you run the build.xml file in this directory, the build will fail.

In order to correct the problem, download ant-contrib and place it in your $MW_HOME/modules/org.apache.ant_1.7.1/lib directory. Then, edit the build.xml file placing the following node just below the <project> node.

<taskdef resource="net/sf/antcontrib/antcontrib.properties"/>

Ant will rebuild the manifest included in oracle.soa.ext.jar.

Add JARs to BpelClasspath

Login to the SOA domain Enterprise Manager console.

From the SOA Infrastructure menu, select SOA Administration > BPEL Properties.

At the bottom of the BPEL Service Engine Properties page, click More BPEL Configuration Properties.

Click BpelClasspath.

In the Value field, specify the class path - $ORACLE_HOME/soa/modules/oracle.soa.ext_11.1/*
For example, /u01/app/oracle/middleware/soa/modules/oracle.soa.ext_11.1/*

Click Apply.

Click Return.

In addition, ensure that the JARs are loaded by the SOA composite application.

Redeploy your application.

Lastly, restart your SOA managed server. 

References

Monday, September 8, 2014

Oracle IDM 11.1.2.2.0

Oracle has made available the Oracle Identity and Access Management Deployment Repository 11.1.2.2.0. This download is split into seven files that range in size from 1.2GB to 2.1GB (pretty hefty). For anyone that may be curious, here is a list of what the files contain.
  • Disk 1
    • AppDev 
    • RCU 
    • OUD
    • IDMCLM
    • JDK
    • Smart Update
  • Disk 2
    • IAM Disk 1
    • Web Gate
  • Disk 3
    • IAM Disk 2-3
  • Disk 4
    • SOA Disk 1-3
  • Disk 5
    • SOA Disk 4-6 and patches
  • Disk 6
    • WebLogic
  • Disk 7
    • WebTier

idm.guru details how to use the Deployment Wizard

AsyncTransportProvider Exception

I was attempting to deploy an ADF Task Flow that referenced the BPM API and received the following exception.

Weblogic Server Exception: weblogic.application.ModuleException: [HTTP:101216]Servlet: "weblogic.wsee.jaxws.client.async.AsyncTransportProvider" failed to preload on startup in Web application: "testApp".

javax.xml.ws.WebServiceException: javax.xml.ws.WebServiceException: java.lang.InstantiationException: weblogic.wsee.jaxws.client.async.AsyncTransportProvider
...
Caused by: javax.xml.ws.WebServiceException: java.lang.InstantiationException: weblogic.wsee.jaxws.client.async.AsyncTransportProvider
at weblogic.wsee.jaxws.WLSServletInstanceResolver.create(WLSServletInstanceResolver.java:37)
at weblogic.wsee.jaxws.WLSInstanceResolver.getSingleton(WLSInstanceResolver.java:34)
... 50 more
Caused by: java.lang.InstantiationException: weblogic.wsee.jaxws.client.async.AsyncTransportProvider
at java.lang.Class.newInstance(Class.java:359)
at weblogic.wsee.jaxws.injection.WSEEComponentContributor.newInstance(WSEEComponentContributor.java:54)
at weblogic.wsee.jaxws.injection.WSEEComponentContributor.newInstance(WSEEComponentContributor.java:42)
at weblogic.wsee.jaxws.WLSServletInstanceResolver.create(WLSServletInstanceResolver.java:35)
... 51 more
[08:10:26 AM] Caused by: javax.xml.ws.WebServiceException: java.lang.InstantiationException: weblogic.wsee.jaxws.client.async.AsyncTransportProvider
[08:10:26 AM] See server logs or server console for more details.

I was able to resolve the issue by removing the following libraries from the WAR deployment profile.
  • weblogic.jar
  • wlfullclient.jar
Right-click on your project >> Project Properties >> Deployment >> WAR profile >> Edit >> Library Dependencies >> Uncheck the aforementioned libraries.
You should be able to deploy.

Edit 24 FEB 2015: I have experienced this issue several times since composing this post. If you are able, recreate your project from scratch.

Install JDeveloper on OS X

If you attempt to install JDeveloper 11.1.1.7 on OS X Mavericks or OS X Yosemite, you may run into a few common issues.
  1. The installer window is really small, and the only visible button is Exit.
  2. The installer may fail with an error indicating, "Fatal error during installation..." The installer then terminates and cleans up the installation files. This issue occurs because the JDeveloper installer will not run with JDK7.
  3. You may get JDeveloper installed with Java for Mac 1.8; however, I have found that the Property Inspector crashes in a reproducible fashion which basically renders JDeveloper useless.

What You'll Need

Download the following binaries from Oracle
  • JDeveloper 11.1.1.7 Generic
  • JDK6
  • JDK7

How-to

These steps also work for JDeveloper 11.1.2.0+.

Install both JDK6 and JDK7.
Launch Terminal and issue the following command.

Terminal
/usr/libexec/java_home --version 1.6.0 --exec java -jar jdevstudio11117install.jar
Uncheck the selected JDK. This is JDK6 that we used to run the installer.
Browse to the install location of JDK7.
Make sure JDK7 is selected as the Local JDK. This is the JDK we want to use to run JDeveloper and the integrated WLS instance from now on.

Edit jdev.conf to increase MaxPermSize

Open ${Middleware_Home}/jdeveloper/jdev/bin
Comment existing AddVMOption
AddVMOption  -XX:MaxPermSize=512M

Edit ide.conf to increase heap size

Comment existing AddVMOption
AddVMOption -Xmx1024M
AddVMOption -Xms1024M