Router problem
vishal12345 Nov 18, 2008 4:01 AMFollowing is the ESB conf file i have a queue called nt_messageRouter on which an object is sent this object implements serializable interface and based on contents it is to be routed appropriately
problem is when the object is sent to JMS queue called nt_messageRouter
server gives following error
14:21:34,117 ERROR [JmsComposer] Object in JMS message is not a org.jboss.soa.esb.message.Message java.lang.ClassCastException: com.nativetung.frontendServer.FESMessage cannot be cast to java.lang.String at org.jboss.soa.esb.util.Util.deserialize(Util.java:211) at org.jboss.internal.soa.esb.couriers.helpers.JmsComposer.compose(JmsComposer.java:72) at org.jboss.internal.soa.esb.couriers.JmsCourier.pickup(JmsCourier.java:404) at org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl.pickup(TwoWayCourierImpl.java:232) at org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl.pickup(TwoWayCourierImpl.java:214) at org.jboss.soa.esb.listeners.message.MessageAwareListener.waitForEventAndProcess(MessageAwareListener.java:280) at org.jboss.soa.esb.listeners.message.MessageAwareListener.doRun(MessageAwareListener.java:248) at org.jboss.soa.esb.listeners.lifecycle.AbstractThreadedManagedLifecycle.run(AbstractThreadedManagedLifecycle.java:115) at java.lang.Thread.run(Unknown Source)
attached is the esb file
can you tell me why this doesnt work ? on the other hand the messagefilter quickstart works much in same way
thanks
<?xml version = "1.0" encoding = "UTF-8"?> <jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" parameterReloadSecs="5"> <providers> <jms-provider name="JBossMQ" connection-factory="ConnectionFactory" jndi-URL="jnp://127.0.0.1:1099" jndi-context-factory="org.jnp.interfaces.NamingContextFactory" jndi-pkg-prefix="org.jboss.naming:org.jnp.interfaces"> <jms-bus busid="quickstartGwChannel"> <jms-message-filter dest-type="QUEUE" dest-name="queue/nt_gw" /> </jms-bus> <jms-bus busid="quickstartEsbChannel"> <jms-message-filter dest-type="QUEUE" dest-name="queue/nt_esb" /> </jms-bus> <jms-bus busid="TSQueue"> <jms-message-filter dest-type="QUEUE" dest-name="queue/nt_ts" /> </jms-bus> <jms-bus busid="TSEsb"> <jms-message-filter dest-type="QUEUE" dest-name="queue/nt_tsesb" /> </jms-bus> <jms-bus busid="TManager"> <jms-message-filter dest-type="QUEUE" dest-name="queue/nt_tmanager" /> </jms-bus> <jms-bus busid="CManager"> <jms-message-filter dest-type="QUEUE" dest-name="queue/nt_cmanager" /> </jms-bus> <jms-bus busid="MessageStore"> <jms-message-filter dest-type="QUEUE" dest-name="queue/nt_messageStore" /> </jms-bus> <jms-bus busid="MessageRouter"> <jms-message-filter dest-type="QUEUE" dest-name="queue/nt_messageRouter" /> </jms-bus> <jms-bus busid="GoogleService"> <jms-message-filter dest-type="QUEUE" dest-name="queue/nt_googleDest" /> </jms-bus> </jms-provider> </providers> <services> <service category="FirstEclipseServiceESB" name="SimpleListener" description="Hello World"> <listeners> <jms-listener name="JMS-Gateway" busidref="quickstartGwChannel" maxThreads="1" is-gateway="true" /> <jms-listener name="helloWorld" busidref="quickstartEsbChannel" maxThreads="1" /> </listeners> <actions> <!-- <action name="action1" class="com.nativetung.soa.esb.actions.MessageParserAction" process="processMessage" /> --> <action name="transformtopojo" class="org.jboss.soa.esb.actions.converters.SmooksTransformer" > <property name="resource-config" value="/smooks-res.xml" /> <property name="java-output-location" value="$default" /> </action> <action name="MessageGenerator" class="com.nativetung.soa.esb.actions.MsgGeneratorAction" process="processMessage"/> </actions> </service> <service category="TSService" name="TsListener" description="Translation Server"> <listeners> <jms-listener name="JMS-Gateway" busidref="TSQueue" maxThreads="1" is-gateway="true" /> <!-- <jms-listener name="helloWorld" busidref="quickstartEsbChannel" maxThreads="1" /> --> <jms-listener name="TS-ESB" busidref="TSEsb" maxThreads="1" /> </listeners> <actions mep="OneWay"> <action class="org.jboss.soa.esb.actions.ContentBasedRouter" name="ContentBasedRouter"> <property name="ruleSet" value="FunCBRRules-XPath.drl"/> <property name="ruleLanguage" value="XPathLanguage.dsl"/> <property name="ruleReload" value="true"/> <property name="destinations"> <route-to destination-name="TM" service-category="TMService" service-name="TmListener" /> <route-to destination-name="CM" service-category="CMService" service-name="CmListener" /> </property> </action> </actions> </service> <!-- Translation manager service --> <service category="TMService" name="TmListener" description="Translation Manager"> <listeners> <jms-listener name="TManagerListener" busidref="TManager" maxThreads="1" /> </listeners> <actions mep="OneWay"> <action name="Translate Action" class="com.nativetung.soa.esb.actions.TMAction" process="processMessage" /> <action name="transformtopojo" class="org.jboss.soa.esb.actions.converters.SmooksTransformer" > <property name="resource-config" value="/smooks-res.xml" /> <property name="java-output-location" value="$default" /> </action> <action name="convertPOJO2Message" class="com.nativetung.soa.esb.actions.TMPojoToMessage" /> </actions> </service> <!-- Capitalization manager service --> <service category="CMService" name="CmListener" description="Capitalization Manager"> <listeners> <jms-listener name="CManagerListener" busidref="CManager" maxThreads="1" /> </listeners> <actions mep="OneWay"> <action name="Capatalization Action" class="com.nativetung.soa.esb.actions.CMAction" process="processMessage" /> <action name="transformtopojo" class="org.jboss.soa.esb.actions.converters.SmooksTransformer" > <property name="resource-config" value="/smooks-res.xml" /> <property name="java-output-location" value="$default" /> </action> <action name="convertPOJO2Message" class="com.nativetung.soa.esb.actions.TMPojoToMessage" /> </actions> </service> <!-- agreegator service --> <service category="MessageStoreService" name="MsListener" description="MessageStore for messages"> <listeners> <jms-listener name="MessageStoreListener" busidref="MessageStore" maxThreads="1" /> </listeners> <actions mep="OneWay"> <action name="transformtopojo" class="org.jboss.soa.esb.actions.converters.SmooksTransformer" > <property name="resource-config" value="/smooks-res.xml" /> <property name="java-output-location" value="$default" /> </action> <action name="MessageStore Action" class="com.nativetung.soa.esb.actions.MessageStoreAction" process="processMessage" /> </actions> </service> <service category="MessageRouterService" name="RouterListener" description="MessageRouter for messages"> <listeners> <jms-listener name="RouterListener" busidref="MessageRouter" maxThreads="1" /> </listeners> <actions mep="OneWay"> <action class="org.jboss.soa.esb.actions.MessageFilter" name="MessageFilter"> <property name="ruleSet" value="FilterRules.drl"/> <property name="ruleReload" value="true"/> <property name="destinations"> <route-to destination-name="googleDestination" service-category="GoogleGatewyService" service-name="GoogleListener"/> </property> <property name="object-paths"> <object-path esb="body.'org.jboss.soa.esb.message.defaultEntry'" /> </property> </action> </actions> </service> <service category="GoogleGatewayService" name="GoogleListener" description="Google Service for message tranaslation"> <listeners> <jms-listener name="GoogleListener" busidref="GoogleService" maxThreads="1" /> </listeners> <actions mep="OneWay"> <action name="Google Service Action" class="com.nativetung.soa.esb.actions.MessageRouterService" process="processMessage" /> </actions> </service> </services> </jbossesb>