Tuesday, May 10, 2011

Running Human Task in the Integrated WLS

If you are currently developing a Human Task you might have wasted some time testing and redeploying your application many times. You also might have been remote debugging it, which takes quite some time due to the unresponsiveness of your remote WLS.
The steps I describe below will make your BPM Workspace application point to the Human Task running inside the Integrated WLS in JDeveloper, which means that for any changes done in the UI layer you will only need to refresh the browser to see it or rebuild a Java class to get it reflected on the business layer. Kudos go to the BPM Product Management team that has put this ant script together, I’m just making the setup process more clear.


1. Open $JDEV_DOMAIN_HOME/config/fmwconfig/system-jazn-data.xml and add  the following grant for BPM. $JDEV_DOMAIN_HOME is usually located under C:\Users\<username>\AppData\Roaming\JDeveloper\system11.\DefaultDomain. C:\Oracle\Middleware is where JDeveloper is installed ($JDEV_HOME).

   1: <grant>
   2:     <grantee>
   3:         <codesource>
   4:             <url>file:C:\\Oracle\\Middleware\\jdeveloper\\soa\\modules\\oracle.soa.workflow_11.1.1\\-</url>
   5:         </codesource>
   6:     </grantee>
   7:     <permissions>
   8:         <permission>
   9:             <class>oracle.security.jps.JpsPermission</class>
  10:             <name>VerificationService.createInternalWorkflowContext</name>
  11:         </permission>
  12:         <permission>
  13:             <class>oracle.security.jps.service.policystore.PolicyStoreAccessPermission</class>
  14:             <name>context=APPLICATION, name=*</name>
  15:             <actions>getApplicationPolicy</actions>
  16:         </permission>
  17:         <permission>
  18:             <class>oracle.security.jps.service.policystore.PolicyStoreAccessPermission</class>
  19:             <name>context=SYSTEM, name=*</name>
  20:             <actions>getConfiguredApplications</actions>
  21:         </permission>
  22:         <permission>
  23:             <class>oracle.security.jps.service.policystore.PolicyStoreAccessPermission</class>
  24:             <name>context=SYSTEM, name=*</name>
  25:             <actions>getSystemPolicy</actions>
  26:         </permission>
  27:         <permission>
  28:             <class>oracle.security.jps.service.credstore.CredentialAccessPermission</class>
  29:             <name>context=SYSTEM, mapName=BPM-SERVICES, keyName=BPM-SERVICES</name>
  30:             <actions>read</actions>
  31:         </permission>
  32:         <permission>
  33:             <class>oracle.security.jps.service.credstore.CredentialAccessPermission</class>
  34:             <name>context=SYSTEM, mapName=BPM-CRYPTO, keyName=BPM-CRYPTO</name>
  35:             <actions>read,write</actions>
  36:         </permission>
  37:         <permission>
  38:             <class>oracle.security.jps.JpsPermission</class>
  39:             <name>IdentityAssertion</name>
  40:             <actions>*</actions>
  41:         </permission>
  42:     </permissions>
  43: </grant>

2. Start your embedded WLS instance.


3. Download and unzip bpm-jdev.zip. Open build.properties and set the properties shown below appropriately.


4. Run ant.

5. Now we’ll check if the Human Task is pointing to the machine that hosts JDeveloper. Go to Enterprise Manager in your SOA domain and select the corresponding BPM process.


6. Click on the Human Task, in my case, CreateOrder.


7. Under the Administration tab you should see the Human Task pointing to JDeveloper’s machine.



1. Expand the Human Task project in JDeveloper, right click in the bounded task flow that references the Human Task form, and click either Run or Debug.


2. It will start JDev’s Integrated WLS and deploy the human task to the server

3. Open BPM Workspace application.

a. Create a new composite by clicking in process name under Applications.


b.Check if the address bar in the popup windows points to your Integrated WLS.



  1. Hi George, fantastic article. The instructions seem to refer to version; do you think the bpm-jdev.zip will work for too? Thanks, Stefano

  2. George, I, too, am having some issues using this on Running this the first time after setup, the bpm task flow param list popup shows up. I skipped it and now always get the dreaded "initParam is null" error. I had done this setup in during an oracle workshop, but it does not seem to work as expected. For eg. after running the ant task, the task url does not reflect port 7101 in EM. Any thoughts?



Note: Only a member of this blog may post a comment.