OCEP JMS Adapter implement InboundMessageConverter issue - Complex Event Processing

I'm new to OCEP. I have a JMS adapter receiving Weblogic JMS message. JMS Message is a TextMessage, so the default MapMessage can't convert it. I need to write my own converter which implement InboundMessageConvert. Eclipse compiles just fine, but when deploying into a runtime OCEP environment, I get an error saying that my custom converter class does not implement InboundMessageConverter which I did. Did anyone encounter this issue and how to get around it?
I also tried the sample code provided in Developer Guide and it doesn't work. My code bellow is a sample to by pass the deployment issue..
package com.converter;
import com.bea.wlevs.adapters.jms.api.InboundMessageConverter;
import com.bea.wlevs.adapters.jms.api.MessageConverterException;
import javax.jms.JMSException;
import javax.jms.Message;
import java.util.List;
public class MyMessageConverter
implements InboundMessageConverter
public MyMessageConverter(){
public List convert(Message message) throws MessageConverterException, JMSException
return null;
--- error message when deploy to runtime environment ---
<Mar 22, 2010 10:30:57 AM PDT> <Error> <Deployment> <BEA-2045010> <The application context "FilteringEvent" could not be started: org.springframework.beans.FatalBeanException: Error in context lifecycle initialization; nested exception is java.lang.IllegalArgumentException: converter-bean com.converter.MyMessageConverter does not implement InboundMessageConverter
org.springframework.beans.FatalBeanException: Error in context lifecycle initialization; nested exception is java.lang.IllegalArgumentException: converter-bean com.converter.MyMessageConverter does not implement InboundMessageConverter
at com.bea.wlevs.spring.ApplicationContextLifecycle.onApplicationEvent(ApplicationContextLifecycle.java:136)
at org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78)
at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274)
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:736)
at org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.finishRefresh(AbstractOsgiBundleApplicationContext.java:235)
at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:358)
at org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320)
at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:136)
at org.springframework.scheduling.commonj.DelegatingWork.run(DelegatingWork.java:61)
at weblogic.work.commonj.CommonjWorkManagerImpl$WorkWithListener.run(CommonjWorkManagerImpl.java:196)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173) 

Hello, I found the solution to my problem. Thanks. 

May I know how did you overcome this error? I am unable to use converterBean with both JMS and HTTP?
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'HttpSubAdapter': Invocation of init method failed; nested exception is org.springframework.beans.FatalBeanException: Unable to set instance-property reference for bean HttpSubAdapter, property converterBean, exception was org.springframework.beans.TypeMismatchException: Failed to convert property value of type [converter.HttpSubConverter] to required type [com.bea.wlevs.adapters.httppubsub.api.InboundMessageConverter] for property 'converterBean'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [converter.HttpSubConverter] to required type [com.bea.wlevs.adapters.httppubsub.api.InboundMessageConverter] for property 'converterBean': no matching editors or conversion strategy found
Any idea?
Edited by: user8906186 on Dec 8, 2011 1:34 AM 

Hi friend,
Could you tell us where was the problem and how did yo solve it?
I have a similar problem.
Thank you! 

Please check your Manifest file. Ensure whether it has required jms library files of OCEP included under import package.
For eaxample : com.bea.wlevs.adapters.jms.api 

I have included the following two lines into the Manifest file, but this action has not fixed the problem:
My EPN file is as shown:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
     <bean id="myConverter" class="com.bea.wlevs.adapter.example.jmsclient.JMSClient"/>
     <wlevs:adapter id="jmsInbound" provider="jms-inbound">
          <wlevs:instance-property name="converterBean" ref="myConverter"/>
The error showned by Eclipse is:
Multiple annotations found at this line:
     - cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'application:jms-adapter'.
     - schema_reference.4: Failed to read schema document 'http://www.bea.com/ns/wlevs/config/application/
     wlevs_application_config.xsd', because 1) could not find the document; 2) the document could not be read; 3) the root element of the
     document is not <xsd:schema>.
Edited by: 899693 on 15-dic-2011 2:48 

The application config lives in a different file in a different location. You cannot combine it with the EPN definition. Please see some of the examples as to where it should live.

Thank you, but read:
The following sample EPN assembly file shows how to configure an inbound JMS adapter. The network is simple: the inbound JMS adapter called jmsInbound receives messages from the JMS queue configured in its component configuration file. The Spring bean myConverter converts the incoming JMS messages into event types, and then these events flow to the mySink event bean.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
<wlevs:event-type type-name="JMSEvent">
<!-- Event bean that is an event sink -->
<wlevs:event-bean id="mySink"
<!-- Inbound JMS adapter with custom converter class; adapter sends events to mySink event bean-->
<bean id="myConverter" class="com.customer.MessageConverter"/>
<wlevs:adapter id="jmsInbound" provider="jms-inbound">
<wlevs:instance-property name="converterBean" ref="myConverter"/>
<wlevs:listener ref="mySink"/>
It is not clear in the official documentation what you say.


Thank you but it is too much cumbersome, I cannot see anything there talking about JMS configuration files. It does not specify what specific name you must give to the JMS configuration files nor where you have to put them.

You need to read up on component configuration and then the JMS docs will make more sense to you. You are not interpreting the JMS docs correctly because you do not understand the fundamentals of CEP configuration. The link I posted will help you understand. 

I have already read both docs. Think I have just started with this technology and everything is new for me.
I just think the documentation should be more complete and more disciplined than it is.

It is said in the overview page:
"*You create a single file that contains configuration for all components in your application*, _or you can create separate files for each component; the choice depends on which is easier for you to manage._ "
However, in JMS tutorial, it is said the following:
"*You configure the JMS adapters in their respective configuration files*, similar to how you configure other components in the event processing network, such as processors or streams. For general information about these configuration files, see Component Configuration Files. "
Is it possible to configure JMS adapter in the EPN file or not? In the case it is not possible, what is the name of the file in which I must include <jms-adapter> tree and what folder?

Some elements of the JMS adapter can be configured in the EPN, but you configure those elements using instance-property. It's probably easier to just put all the config in the component configuration file. The easiest way to do this is create a file META-INF/wlevs/config.xml in your application. You can then put all the component configuration in there. If you wish to have separate component configuration files then they must be named according to the names used in the EPN. This is all covered in the docs.

So if I understand you, jms-adapter tree can be set in the same file than processors and CQL queries?


Complex Event types

Is it possible to model a complex event type in CEP? Foe example event type Class A has properties X:string Y: Int and z : ClasssB.
When i use class A i get an error saying this tool support only String, INteger, Float and Double as properties. ClassB is not a valid property. Does it mean all elements of an event type should be at same level? 
We do support complex types in the event-type.
Could you copy/paste the actual error and your application assembly/configuration?
Note that there is a limitation only on the CSV adapter for simple types, perhaps that's what you running into?
You are right. I have been using csvgen as Provider.
<wlevs:adapter id="abcAdapter" provider="csvgen">
<wlevs:instance-property name="port" value="9011"/>
the exception i get is
: [Adapter:2041010]Event type DeviceMessage has a property of type class com.vod
afone.cosa.cmid.SensorData. This tool only supports String, Integer, Long, Float
, and Double properties.
commonj.work.WorkException: java.lang.RuntimeException: [Adapter:2041010]Event t
ype DeviceMessage has a property of type class com.xyz.abc.cmid.SensorData
. This tool only supports String, Integer, Long, Float, and Double properties.
I think i should use http provider. Let me try that. I have another question ill create a new post for that. 
Hi, I think most of the file based data sourcing tools do not support complex event. You use a processor to build the complex event. 
thanks for your inputs. I am facing with a problem here. Any help is much appreciated.
I created a simple test project to try out httppubsub adapter. I have described what i tried out...
I created two channels 'mychannel' and 'myoutputchannel' thru CEP visualizer.
Create a CEP project with two HTTP Adapters and both end and one channel in between.
HTTPSubAdapter --------[Channel]----------HTTPPubAdapter
HTTPSubAdapter Listens to mychannel
HTTPPubAdapter publishes to myoutputchannel.
OutputBean which listen to channel
I deployed the CEP project to server and posted a message in mychannel thru CEP visualizer.
the output i see in the console is
OutputBean:onEvent() + eventType=TestMessage object=TestMessage time=0 test=null isTotalOrderGuarantee=false
basically it comes out as NULL. Am I missing somthing here?
Adapter config file is given below.
<?xml version="1.0" encoding="UTF-8"?>
<wlevs:config xmlns:wlevs="http://www.bea.com/ns/wlevs/config/application">
EPN context file is given below.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
<wlevs:event-type type-name="TestMessage">
<wlevs:property name="test" type="java.lang.String"/>
     <wlevs:adapter id="testAdapter" provider="httpsub">
          <wlevs:listener ref="channel" />
     <wlevs:channel id="channel" event-type="TestMessage"
          advertise="true" >
          <wlevs:listener ref="testOutputAdapter" />
          <wlevs:listener ref="bean" />
     <wlevs:adapter id="testOutputAdapter" provider="httppub">
     <bean id="bean" class="com.testing.output.OutputBean" autowire="default">
This may be because of the issue and workaround described in the this thread - Re: Http subscriber adapter related problem 
thanks Manju ill try that.

<bindings> documentation error?

Hi Everyone,
I would like to create JAXWS-based SOAP handlers for my webservices client. Thus when making the webservices a custom SOAP <Header> that the service demands could be created.
The latest document I can find is here:
At the very end there is a (broken?) example <bindings> XML fragment as follows...
<bindings xmlns:xsd="http://www.w3.org/2001/XMLSchema"
<bindings node="wsdl:definitions"
Looking at this example you'll notice <bindings xmlns:...><bindings node=...></bindings>.
I have made several attempts to correct this example and specify it as part of my <clientgen><binding ...> but during run time the handler-class specified has no effect. I can not even generate errors such class not found or null pointer exception. It is as if the <binding> child element of <clientgen> has not more effect than some compile-time syntax checking (i.e. if I specify an bogus xml file compile-time warnings occur).
Is there a complete working example of a JAXWS-based SOAP handler that addresses the <Header>?
¡Muchas gracias in advance!
Here you can find a good example: http://www.javaworld.com/javaworld/jw-02-2007/jw-02-handler.html?page=3

what steps do i take to allow weblogic 10 to load the necessary jar files

i have encountered some problems regarding about the weblogic 10.3 loading the jar files. i put in the lib dir in my war application
I'm using weblogic 8 initially and i place all my jar files inside my application \WEB-INF\lib. No problem with that.
In weblogic 10, i'm using the same method, placing spring.jar, hibernate.jar, etc in the \WEB-INF\lib
When i run everything, everything works fine. However when i tried to access the database to retrieve a record, i encounter
a ClassNotFoundException error.
I have check my source codes and i already state all the import libs in my class file. All my codes are available in their relevant
and respective directories. The ClassNotFoundException i believe is due to not able to find the spring hibernate class files.
Below are some of the code in my java file, AccessDB.java:
Import the necessary libaries
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
i extends the HibernateDaoSupport in the class:
*public class RoleManagementDaoImpl extends HibernateDaoSupport implements RoleManagementDao{*
*     *
*     public void AccessDB(Info info) throws DataAccessException {*
*          //the business logic in here*
*          String sql1 = "from myDatabase;*
*          *
*          obj = getHibernateTemplate().find(sql1);*
*     }*
It is at this line obj = getHibernateTemplate().find(sql1); that throws the error
The line from the sql statement: String sql1 = "from myDatabase;, myDatabase is the name of the hbm file i created. The hbm file as shown below
I have check that the path to the classfile mtDatabase exists in my application. My hbm file, myDatabase.hbm:
<class name="test.dao.model.myDatabase" table="myFirstTable">
          <id name="id" column="ID" type="integer">
<generator class="assigned"/>
<property name="name" column="name" type="java.lang.String" />
This is the error from the console screen where it try to retrieve the record:
*org.springframework.orm.hibernate3.HibernateQueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken [from test.dao.model.myDatabase]; nested exception is org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken [from test.dao.model.myDatabase]*
*org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken [from test.dao.model.myDatabase]*
at org.hibernate.hql.ast.HqlLexer.panic(HqlLexer.java:57)
at antlr.CharScanner.setTokenObjectClass(CharScanner.java:340)
at org.hibernate.hql.ast.HqlLexer.setTokenObjectClass(HqlLexer.java:31)
at antlr.CharScanner.<init>(CharScanner.java:51)
at antlr.CharScanner.<init>(CharScanner.java:60)
at org.hibernate.hql.antlr.HqlBaseLexer.<init>(HqlBaseLexer.java:56)
at org.hibernate.hql.antlr.HqlBaseLexer.<init>(HqlBaseLexer.java:53)
at org.hibernate.hql.antlr.HqlBaseLexer.<init>(HqlBaseLexer.java:50)
at org.hibernate.hql.ast.HqlLexer.<init>(HqlLexer.java:26)
at org.hibernate.hql.ast.HqlParser.getInstance(HqlParser.java:44)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:232)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:155)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:109)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:75)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:54)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:134)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:113)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1602)
at org.springframework.orm.hibernate3.HibernateTemplate$29.doInHibernate(HibernateTemplate.java:819)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:365)
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:817)
at weblogic.security.service.SecurityManager.runAs(Unknown Source)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
*     ERROR : ClassNotFoundException: org.hibernate.hql.ast.HqlToken [from from test.dao.model.myDatabase]; nested exception is org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken [from from test.dao.model.myDatabase]*
How do i load the jar files? Do i need to set the classpath in the weblogic.cmd? I thought weblogic will load the jars in the /WEB-INF/lib?
And lastly how to i add code tags to my post? i have only bold, italics, underline, hyperlink and spelling options
Edited by: user8271033 on Sep 30, 2010 7:18 PM 
You can try to set the value true for prefer-web-inf-classes element which will cause the classes which are located in the directory \WEB-INF\lib of a Web application to be loaded in preference to classes loaded in the application or system class loader. This way we can be sure that the classes from the lib folder would be picked and used for this application.
Things to do:
1) Place the Jars inside the “<APPLICATION_EAR>/APP-INF/lib” directory.
2) Add the following entries inside ”<APPLICATION_EAR>/META-INF/weblogic-application.xml” (You need to add the packages available in your JAR files which you want to be loaded from your application in Below)
<?xml version=”1.0″ encoding=”ISO-8859-1″?>
<weblogic-application xmlns=”http://www.bea.com/ns/weblogic/90″>
NOTE: if you Don’t have an EAR File (Enterprise Application) Then First place all the JARs in “<WEB_APPLICATION>/WEB-INF/lib” And then you can perform ClassLoader Filtering by Adding the Following Entry in “<WEB_APPLICATION>/WEB-INF/weblogic.xml”
<weblogic-web-app xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns=”http://www.bea.com/ns/weblogic/90″ xsi:schemaLocation=”http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-web-app.xsd”>
You can even go through the following link:
Few more links which might help you:
Search for: prefer-web-inf-classes
Search for: Configuring a FilteringClassLoader
Hope above information helps you.
Ravish Mody 
i have read through the documents and change my weblogic.xml. Below is the file i use in the deployment:
<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app xmlns:wls="http://www.bea.com/ns/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://www.bea.com/ns/weblogic/weblogic-web-app http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd">
<!-- to precompile JSP -->
However i got this error:
log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.
<Oct 6, 2009 11:40:33 AM SGT> <Warning> <HTTP> <BEA-101162> <User defined listener org.springframework.web.context.ContextLoaderListener failed: java.lang.ClassCastException: weblogic.xml.jaxp.RegistryDocumentBuilderFactory cannot be cast to javax.xml.parsers.DocumentBuilderFactory.
java.lang.ClassCastException: weblogic.xml.jaxp.RegistryDocumentBuilderFactory cannot be cast to javax.xml.parsers.DocumentBuilderFactory
at javax.xml.parsers.DocumentBuilderFactory.newInstance(Unknown Source)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.createDocumentBuilderFactory(XmlBeanDefinitionReader.java:250)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:217)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:173)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:148)
Truncated. see log file for complete stacktrace
<Oct 6, 2009 11:40:33 AM SGT> <Error> <Deployer> <BEA-149231> <Unable to set the activation state to true for the application 'MSFS_JDK6'.
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1373)
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:468)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
Truncated. see log file for complete stacktrace
java.lang.ClassCastException: weblogic.xml.jaxp.RegistryDocumentBuilderFactory cannot be cast to javax.xml.parsers.DocumentBuilderFactory
at javax.xml.parsers.DocumentBuilderFactory.newInstance(Unknown Source)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.createDocumentBuilderFactory(XmlBeanDefinitionReader.java:250)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:217)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:173)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:148)
Truncated. see log file for complete stacktrace
<Oct 6, 2009 11:40:33 AM SGT> <Notice> <Log Management> <BEA-170027> <The Server has established connection with the Domain level Diagnostic Service successfully.>
i double confirm i have the spring.jar in web-inf/lib. Y does it prompt for this error?
Does it use another spring in weblogic?
Edited by: user8271033 on 5/10/2010 20:57

How do I call the class in a jar using Java Embedding in the BPEL process?

Hi Experts, I have a BPEL process, it has the following:2 file adapters one for triggering the BPEL process & deletes the trigger file as soon as it reads the file and other File Adapter that writes it on to same location of the first FileAdapter polling directory, so it can be kicked off automatically. One Java embedding, it does all the work. The whole idea of this BPEL process is to unzip the files from few folders and move the unzipped file to few other different destinations. This is being handled by the Java Embedding in the BPEL process.It works fine when it has been kicked off manually. However, I am getting runtime null pointer exception while deploying the project after I placed the 2 files adapters to kick off the BPEL process.  I contacted Oracle support on the runtime exception, they mentioned that File Adapter starts polling as soon as the deployment starts and the SOA application doesn't have the necessary class / jar file which is being used by the Java Embedding activity.  So, I created a jar file with the java class which are necessary for Java Embedding and added it to "Project Properties --> Libraries and ClassPath". I am still getting the same deployment error message. Please advise.   Composite Code:<?xml version="1.0" encoding="UTF-8" ?><!-- Generated by Oracle SOA Modeler version at [10/20/14 3:51 PM]. --><composite name="Job2_UnZip"           revision="3.0"           label="2014-10-20_15-51-13_075"           mode="active"           state="on"           xmlns="http://xmlns.oracle.com/sca/1.0"           xmlns:xs="http://www.w3.org/2001/XMLSchema"           xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"           xmlns:orawsp="http://schemas.oracle.com/ws/2006/01/policy"           xmlns:ui="http://xmlns.oracle.com/soa/designer/">  <import namespace="http://xmlns.oracle.com/pcbpel/adapter/file/Job2_UnZip/Job2_UnZip/ReadTriggerFile"          location="ReadTriggerFile.wsdl" importType="wsdl"/>  <import namespace="http://xmlns.oracle.com/pcbpel/adapter/file/Job2_UnZip/Job2_UnZip/WriteTriggerFile"          location="WriteTriggerFile.wsdl" importType="wsdl"/>  <service name="ReadTriggerFile" ui:wsdlLocation="ReadTriggerFile.wsdl">    <interface.wsdl interface="http://xmlns.oracle.com/pcbpel/adapter/file/Job2_UnZip/Job2_UnZip/ReadTriggerFile#wsdl.interface(Read_ptt)"/>    <binding.jca config="ReadTriggerFile_file.jca"/>  </service>  <property name="productVersion" type="xs:string" many="false"></property>  <component name="BPELProcess1" version="2.0">    <implementation.bpel src="BPELProcess1.bpel"/>    <property name="bpel.config.oneWayDeliveryPolicy" type="xs:string"              many="false">async.persist</property>  </component>  <reference name="WriteTriggerFile" ui:wsdlLocation="WriteTriggerFile.wsdl">    <interface.wsdl interface="http://xmlns.oracle.com/pcbpel/adapter/file/Job2_UnZip/Job2_UnZip/WriteTriggerFile#wsdl.interface(Write_ptt)"/>    <binding.jca config="WriteTriggerFile_file.jca"/>  </reference>  <wire>    <source.uri>ReadTriggerFile</source.uri>    <target.uri>BPELProcess1/ReadTriggerFile</target.uri>  </wire>  <wire>    <source.uri>BPELProcess1/WriteTriggerFile</source.uri>    <target.uri>WriteTriggerFile</target.uri>  </wire></composite>   Here is the BPEL code: <?xml version = "1.0" encoding = "UTF-8" ?><!--////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////  Oracle JDeveloper BPEL Designer     Created: Mon Oct 20 16:00:54 EDT 2014  Author:  i4tr1hs  Type: BPEL 2.0 Process  Purpose: Empty BPEL Process////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////--><process name="BPELProcess1"               targetNamespace="http://xmlns.oracle.com/Job2_UnZip/Job2_UnZip/BPELProcess1"               xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"               xmlns:client="http://xmlns.oracle.com/Job2_UnZip/Job2_UnZip/BPELProcess1"               xmlns:ora="http://schemas.oracle.com/xpath/extension"               xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"         xmlns:ns1="http://xmlns.oracle.com/pcbpel/adapter/file/Job2_UnZip/Job2_UnZip/ReadTriggerFile"         xmlns:ns2="http://xmlns.oracle.com/pcbpel/adapter/file/Job2_UnZip/Job2_UnZip/WriteTriggerFile"         xmlns:bpelx="http://schemas.oracle.com/bpel/extension"         xmlns:ns3="http://xmlns.oracle.com/pcbpel/adapter/file/attachment/">    <!--     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////     ORCHESTRATION LOGIC                                                    Set of activities coordinating the flow of messages across the         services integrated within this business process                      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////  -->  <partnerLinks>    <partnerLink name="ReadTriggerFile" partnerLinkType="ns1:Read_plt"                 myRole="Read_role"/>    <partnerLink name="WriteTriggerFile" partnerLinkType="ns2:Write_plt"                 partnerRole="Write_role"/>  </partnerLinks>  <variables>    <variable name="Receive_Read_InputVariable" messageType="ns1:Read_msg"/>    <variable name="Invk_Write_InputVariable" messageType="ns2:Write_msg"/>  </variables>  <sequence name="main">    <receive name="Receive" createInstance="yes" partnerLink="ReadTriggerFile"             portType="ns1:Read_ptt" operation="Read"             variable="Receive_Read_InputVariable"/>    <assign name="Transform">      <bpelx:annotation>        <bpelx:pattern patternName="bpelx:transformation"/>      </bpelx:annotation>      <copy>        <from>ora:doXSLTransformForDoc("xsl/Transformation.xsl", $Receive_Read_InputVariable.attach)</from>        <to variable="Invk_Write_InputVariable" part="body"/>      </copy>    </assign>    <invoke name="Invk" bpelx:invokeAsDetail="no"            partnerLink="WriteTriggerFile" portType="ns2:Write_ptt"            operation="Write" inputVariable="Invk_Write_InputVariable"/>    <extensionActivity>      <bpelx:exec name="Java_Embedding1" language="java"><!-- <bpelx:exec import="import java.io.File"/><bpelx:exec import="import java.io.FileOutputStream"/><bpelx:exec import="import java.io.IOException"/><bpelx:exec import="import java.io.InputStream"/><bpelx:exec import="import java.util.Enumeration"/><bpelx:exec import="import java.util.zip.ZipEntry"/><bpelx:exec import="import java.util.zip.ZipException"/><bpelx:exec import="import java.util.zip.ZipFile"/><bpelx:exec import="import java.util.Enumeration"/><bpelx:exec import="import java.util.Hashtable"/> -->  <bpelx:exec import="imaging"/>        <![CDATA[/*Write your java code below e.g.         System.out.println("Hello, World");      */      try {                      UnZip sayIt = new UnZip();          sayIt.getAllDocTypFolderstoUnzip();       } catch (Exception e) {             System.out.println("exception "+e.getMessage());                //addAuditTrailEntry(e);              }]]>      </bpelx:exec>    </extensionActivity>  </sequence></process>   Please advise.
Follow this:Incorporating Java and Java EE Code in a BPEL Process - 11g Release 1 (,Sandeep
Hi, Please follow Sandeep's advise on getting this to work with java exec. However, did you consider using an unzip valve to do the conversion at the inbound adapter. The approach is described here: Oracle JCA Adapter for Files/FTP - 11g Release 1 ( The code for a simple unzip valve is here: Oracle JCA Adapter Valves - 11g Release 1 (
Thanks Sandeep for the response.  I followed that option already. I was still getting the same error. I know I am missing something like, importing the EXTERNAL jar files in to JAVA EMBEDDING activity.  Please advise.
Thanks Srimant for your response. We tried this option as well long back. It didn't work. I will try once again and get back to you in case I found any issues. Thanks,Harisudhan Selvaraj
Few questions:- When you say it works manually does it mean that it works when you manually copy the zip file to file adapter's inbound folder?- Can you post the NPE which you are getting during deployment? Also pls confirm that the failure is happening during deployment only and you are not able to reach to a point where you can execute the scenario during runtime. regards,Sandeep

AIAReadJMSNotificationProcess doesn’t fire

I am struggling to get the AIAErrorHandling process working in our environment.
I have created a test composite that will run the AIAAsyncErrorHandeling service and I can make it send out email notifications.
The problem is nothing appears in the BPM worklist app.
In order to confirm whether or not the errors were reaching the Topic I created my own composite that subscribes to the AIAErrorTopic. When I create an error I can see that my composite that I created is running without a problem.
I have then had a look at the AIAReadJMSNotificationProcess. No instances of this composite fire, instead I get Error Message ORABPEL-11108 under Recent Faults and Reject Messages.
I have looked the source code for this composite and I have found that it does exactly the same thing as the test subscriber composite that I created.
My test composite uses the same message selector rule, I use the same xsd from metadata. I have a different durableSubscriber value but this is expected.
Can anyone suggest how I can proceed in debugging this situation?
(I am on a clustered environment)
maybe too obvious, but have you set EH.INVOKE.HWF to true in your AIAConfigurationProperties.xml (including upload to MDS of course)?
You can check if AIA_ERROR_TOPIC is getting the message by logging to weblogic console and checking the topic message count. If it is then check the JMSCorrelationID field, the default filter of AIAReadJMSNotificationProcess would use EH_DEFAULT. It this is different, it will not be invoked. 
I have checked the property EH.INVOKE.HWF and it is set to true.
I don't think this matters because if you look in the BPEL that the AIAReadJMSNotificationProcess uses you can see the following:
<flow name="Flow_1">
<sequence name="HWFSequence">
<switch name="Decide_HWFInvocation">
<case condition="aia:getSystemModuleProperty('ErrorHandler','EH.INVOKE.HWF',true())= 'true'">
<bpelx:pattern>Check, if HWF invocation enabled</bpelx:pattern>
So it is in fact this composite that reads the setting and decides if the BPM worklist call is needed. As this is the case this composite should fire irrespective of the value of the setting. (Although I have verified it is true from the resource browser in JDev)
I have confirmed the message is getting into the Topic using two methods
1. Building my own subscriber to the topic which fires without a problem
2. Looking at the weblogic console interface as described.
Althouth AIAReadJMSNotificationProcess dosn't fire it does show faults in the Recent Faults and Rejected Messages section of EM
The Error Message is always ORABPEL-11108
Clicking into this I can retrive the fault payload. I have done this and confirmed that it is the same payload as the test fault I am creating.
I have researched ORABPEL-11108 on the net and I think it refers to a malformed message (Although there are not many google hits for this)
I have checked the WSDL's used for the JCA consumer components and mine matches the AIAReadJMSNotificationProcess one.
I also checked composite.xml and I found that AIAReadJMSNotificationProcess sets it's component as a singleton. I did the same in my version of the composite and the situation remains, mine works without a problem, AIAReadJMSNotificationProcess fails.
Is the xml well formed ?. Are you using any intermediatemessagehop elements ?. 
I don't know what a intermediatemessagehop element is.
I havn't customised the message at all.
The WSDLs created by the wizard when I created the working composite and the WSDL of AIAReadJMSNotificationProcess are both the same.
Both use oramds:/apps/AIAMetaData/AIAComponents/EnterpriseObjectLibrary/Core/Common/V2/Meta.xsd -> Fault Element
The XSD I get from the error is:
<default:Fault xmlns:default="http://xmlns.oracle.com/EnterpriseObjects/Core/Common/V2"> <EBMReference xmlns="http://xmlns.oracle.com/EnterpriseObjects/Core/Common/V2"/> <B2BMReference xmlns="http://xmlns.oracle.com/EnterpriseObjects/Core/Common/V2"/> <FaultNotification xmlns="http://xmlns.oracle.com/EnterpriseObjects/Core/Common/V2"> <ReportingDateTime>2011-12-02T16:19:06+00:00</ReportingDateTime> <FaultMessage> <Text>com.oracle.bpel.client.BPELFault: faultName: {{http://schemas.oracle.com/bpel/extension}assertFailure} messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage} parts: {{ summary=<summary xmlns:def="http://www.w3.org/2001/XMLSchema" xsi:type="def:string" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Test Fault Thrown</summary> ,detail=<detail xmlns:def="http://www.w3.org/2001/XMLSchema" xsi:type="def:string" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">TestFault - This composite is designed to have a 100% chance of faulting</detail> ,code=<code xmlns:def="http://www.w3.org/2001/XMLSchema" xsi:type="def:string" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">IMP0001</code>} </Text> <IntermediateMessageHop/> </FaultMessage> <FaultingService> <ID>RJMTest_RandomFault_ServiceCall_BPEL001</ID> <ImplementationCode>BPEL</ImplementationCode> <InstanceID>2460705</InstanceID> <ExecutionContextID>004gltJyRVY3BDCXBDr2Fh00023O000h2M</ExecutionContextID> </FaultingService> </FaultNotification> </default:Fault>
I have confirmed this is valid XML. Although not against the XSD.
If this wasn't well formed why is my composite able to work?
I dont see anything wrong. Can you try re-deploying the AIAReadJMS Process. 
I am trying to redeploy but I am having problems.
In the directory
The files EH.componentType and AIAErrorTaskAdministraionProcess.componentType both have a file size of 0. Is this correct, should these be empty files?
I have foudn the following in our WLS_SOA1.out file:
<05-Dec-2011 12:04:51 o'clock GMT> <Error> <oracle.soa.adapter> <BEA-000000> <JMSAdapter AIAReadJMSNotificationProcess JmsConsumer_translateFromNative: Received TranslationException>
<05-Dec-2011 12:04:51 o'clock GMT> <Error> <oracle.soa.adapter> <BEA-000000> <JMSAdapter AIAReadJMSNotificationProcess
     at oracle.tip.pc.services.translation.framework.TranslatorFactory.createTranslator(TranslatorFactory.java:147)
     at oracle.tip.adapter.jms.inbound.JmsConsumer.translateFromNative(JmsConsumer.java:562)
     at oracle.tip.adapter.jms.inbound.JmsConsumer.sendInboundMessage(JmsConsumer.java:403)
     at oracle.tip.adapter.jms.inbound.JmsConsumer.send(JmsConsumer.java:1161)
     at oracle.tip.adapter.jms.inbound.JmsConsumer.run(JmsConsumer.java:1048)
     at oracle.integration.platform.blocks.executor.WorkManagerExecutor$1.run(WorkManagerExecutor.java:120)
     at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:183)
     at weblogic.work.DaemonWorkThread.run(DaemonWorkThread.java:30)
FINE: FaultPolicyManager.loadFiles No policy file for this composite : default/AIAReadJMSNotificationProcess!1.0*soa_9e9e398a-93c9-427a-a5ab-bbc6ad9af367
FINE: RecoverFault.Log ServiceEngine=bpel:recoverAndChain:Attempt recovery using Action ora-rethrow-fault
FINE: RecoverFault.Log ServiceEngine=bpel:resolveAndrecover: error in fault resolution::com.oracle.bpel.client.BPELFault: faultName: {{http://schemas.oracle.com/bpel/extension}remoteFault}
This relates to the ORABPEL-11108 error I am seeing. 
The file should have the following content.
<?xml version="1.0" encoding="UTF-8" ?>
<service name="aiaerrortaskadministrationprocess_client"
<interface.wsdl interface="http://xmlns.oracle.com/EH/AIAErrorTaskAdministrationProcess/AIAErrorTaskAdministrationProcess#wsdl.interface(AIAErrorTaskAdministrationProcess)"
<reference name="HumanTask_Actor_Only.TaskService_1"
<interface.wsdl interface="http://xmlns.oracle.com/bpel/workflow/taskService#wsdl.interface(TaskService)"
<reference name="FYIHumanTask.TaskService_1"
<interface.wsdl interface="http://xmlns.oracle.com/bpel/workflow/taskService#wsdl.interface(TaskService)"
<reference name="HumanTask_Actor_1.TaskService_1"
<interface.wsdl interface="http://xmlns.oracle.com/bpel/workflow/taskService#wsdl.interface(TaskService)"
We have checked our DEV, TEST and PROD enviroments and in all enviroments EHcomponentType and AIAErrorTaskAdministraionProcess.componentType are 0 size files.
Can you confirm what version of AIA Foundation Pack you have installed, and also post the contents of EH.componentType
What version of FP are you guys running ?. The code is for PS4. 
We are using AIA FP version
I have downloaded the generic version of the foundation pack from
I got the file ofm_aiafp_generic_11.
In this file I extracted
From this file I can go here:
I can see that both EH.componentType and AIAErrorTaskAdministrationProcess.componentType have zero size.
This explains why they are 0 size in our install. It's strange thorugh beccause these seem to be required files for the composite to work. 
After investigations in an SR I have found that there are mutiple bugs in the Oracle code.
Oracle provided instructions on how to fix the issue
Below copied from SR:
After checking again with my colleagues from the AIA team, they replied with Note 1369101.1 - 'SOA Server With AIA Unable to Look Up Wsdl's At Startup' which seems to describe the situations found in your scenario. This note references the Bug 12979076 - "SOA11G MANAGED SERVER WITH AIA FAILS LOOKING UP WSDL AT STARTUP" explaining similar issue with SOA server while starting AIA due to references to concrete WSDLs. This Bug is fixed in AIA version but the note also describes the way to fix this in prior versions.
The note above includes some additional details for specific services affected by this situation that you might want to double check in your environment.