Software Engineering

Unable to compile a composite that contains a Java embedded activity with Maven


Maven is not compiling the composite when a BPEL process contains java embedding. Just incorporating java embedding makes the maven compilation to fail. If the java embedding is removed then the composite compilation is successful in Maven. This issue can be reproduced  with JDeveloper 12.1.3.x




First I tried to solve this issue by adding dependency declarations for orabpel.jar in the soa maven plugin section and the pom.xml itself. However this approach doesn’t solve my issue. After another research in the Oracle Support system I found two interesting notes:

  • Unable to compile a composite that contains a Java embedded activity with Maven (2050971.1)
  • Failure when compiling a BPEL process in SOA 12c, ‚package com.collaxa.cube does not exist’ (2112178.1)

Both notes describe exactly the issue I currently have. The note 2050971.1 contains a reference to the bug no. 20229616 wherefore no patch is available until now. But it contains a description for a workaround. The workarounds means to put every needed Java library in the folder SOA/SCA-INF/lib. From my perspective that isn’t an appropriate solution, because the missing classes mention by the compiler are in orabpel.jar. This jar file is part of SOA Suite and already available on the infrastructure side. Moreover everything in /SCA-INF/lib is part of the composite and uploaded to MDS. The second support note 2112178.1 references a patch, but it doesn’t also solve the issue. Due to this I build a solution that automates the workaround with SOA/SCA-INF/lib by using Maven plugins.


The solutions contains 3 steps:

1. Using the Maven Dependency Plugin to copy the orabpel.jar to SOA/SCA-INF/lib folder. The copied orabpel.jar will be renamed to only4compile.jar. Further it is important to bind the execution of the plugin to a phase before running the Maven SOA Plugin.

2. Using the Maven Clean Plugin to cleanup all resources automatically build by the Maven SOA Plugin. This configuration is a recommendation for every SOA project using Maven as build tool!

3. Exclude the copied *.jar files when package a SOA project.

Afterwards you can compile, package and deploy SOA Composites containing embedded Java code with Apache Maven.