Products | Versions |
---|---|
TIBCO BusinessEvents Enterprise Edition | - |
Not Applicable | - |
Resolution:
Description:
============
TIBCO BusinessEvents engine throws an exception when creating an event payload from an RV incoming message payload.
Environment:
==========
Operating system: All
TIBCO BusinessEvents (BE) version: 4.0.1, TIBCO Rendezvous
Symptoms:
=========
The BE engine log has the following error statements.
2012 Jan 16 10:21:45:312 GMT -8 VirtualXP-56529 Error [$default.be.mt$.Thread.1] - [functions.event] [inference-class] Exception while creating an Event using XSLT.
java.lang.ClassCastException: com.tibco.xml.schema.impl.DefaultWildcard cannot be cast to com.tibco.xml.schema.SmElement
at com.tibco.cep.driver.tibrv.serializer.TibrvMsgPayload.toXiNode(TibrvMsgPayload.java:65)
at com.tibco.cep.runtime.model.event.impl.SimpleEventImpl.toXiNode(SimpleEventImpl.java:144)
at com.tibco.be.model.rdf.XiNodeBuilder.setXiNodeValue(XiNodeBuilder.java:84)
at com.tibco.be.model.rdf.XiNodeBuilder.makeXiNode(XiNodeBuilder.java:64)
at com.tibco.be.model.rdf.XiNodeBuilder.makeXiNode(XiNodeBuilder.java:44)
at com.tibco.be.functions.event.EventHelper.createEvent3(EventHelper.java:134)
at com.tibco.be.functions.event.EventHelper.createEvent(EventHelper.java:116)
at com.tibco.be.functions.event.EventHelper.createEvent2(EventHelper.java:111)
at be.gen.Rules.test$test_a.execute(test.java:33)
at com.tibco.cep.kernel.core.rete.ReteWM.resolveConflict(ReteWM.java:311)
at com.tibco.cep.kernel.core.rete.ReteWM.resolveConflict(ReteWM.java:289)
at com.tibco.cep.kernel.core.rete.ReteWM.assertObject(ReteWM.java:1524)
at com.tibco.cep.runtime.session.impl.RuleSessionImpl.assertObject(RuleSessionImpl.java:1255)
at com.tibco.cep.runtime.scheduler.impl.WorkerBasedControllerV2.executeTask(WorkerBasedControllerV2.java:357)
at com.tibco.cep.runtime.scheduler.impl.WorkerBasedControllerV2$WorkerTask.run(WorkerBasedControllerV2.java:386)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at com.tibco.cep.runtime.util.CustomBEManagedThread.run(CustomBEManagedThread.java:23)
2012 Jan 16 10:21:45:352 GMT -8 VirtualXP-56529 Error [$default.be.mt$.Thread.1] - [runtime.service] [inference-class] Got runtime exception while executing Rule be.gen.Rules.test(Rules.test) Action be.gen.Rules.test$test_a@e7a94c Objects <be.gen.Events.CricketCommonEvent@id=3>
java.lang.RuntimeException: java.lang.ClassCastException: com.tibco.xml.schema.impl.DefaultWildcard cannot be cast to com.tibco.xml.schema.SmElement
at com.tibco.be.functions.event.EventHelper.createEvent3(EventHelper.java:160)
at com.tibco.be.functions.event.EventHelper.createEvent(EventHelper.java:116)
at com.tibco.be.functions.event.EventHelper.createEvent2(EventHelper.java:111)
at be.gen.Rules.test$test_a.execute(test.java:33)
at com.tibco.cep.kernel.core.rete.ReteWM.resolveConflict(ReteWM.java:311)
at com.tibco.cep.kernel.core.rete.ReteWM.resolveConflict(ReteWM.java:289)
at com.tibco.cep.kernel.core.rete.ReteWM.assertObject(ReteWM.java:1524)
at com.tibco.cep.runtime.session.impl.RuleSessionImpl.assertObject(RuleSessionImpl.java:1255)
at com.tibco.cep.runtime.scheduler.impl.WorkerBasedControllerV2.executeTask(WorkerBasedControllerV2.java:357)
at com.tibco.cep.runtime.scheduler.impl.WorkerBasedControllerV2$WorkerTask.run(WorkerBasedControllerV2.java:386)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at com.tibco.cep.runtime.util.CustomBEManagedThread.run(CustomBEManagedThread.java:23)
Cause:
==========
The reason for the exception is that the input schema had the payload not defined in the format that TIBCO BusinessEvents understands. To include a payload in a Rendezvous message, ensure that the message has a _payload_ field. Also, the complex datatype is not a supported _payload_ field datatypes.
Resolution:
==========
Modify the payload field of the input schema to _payload_ and make sure Supported _payload_ field datatypes and Rendezvous wire format types are used.The supported _payload_ field datatypes are as follows:
1). String
2). TibrvXML
3). byte[]
Reference:
==========
Refer to TIBCO BusinessEvents Developer guide : Channels and Destinations : Working with Rendezvous Channels