wso2 - Invalid null character in text exception while receiving text from jms -
i want receive text message activemq 5.8.0 queue proxy in wso2 esb 4.6.0. here proxy definition:
<proxy xmlns="http://ws.apache.org/ns/synapse" name="proxy1" transports="jms" statistics="enable" trace="enable" startonload="true"> <target> <insequence> <property name="messagetype" value="text/plain" scope="axis2"/> <log level="full"/> <drop/> </insequence> </target> <parameter name="transport.jms.contenttype"> <rules> <default>text/plain</default> </rules> </parameter> <parameter name="transport.jms.connectionfactory">myqueueconnectionfactory</parameter> <parameter name="transport.jms.destinationtype">queue</parameter> <parameter name="transport.jms.destination">txqueue</parameter> <description></description> </proxy> than send text message queue using java code:
queueimpl queue = new queueimpl("queue://txqueue"); connection connection = createconnection(); session session = connection.createsession(false, session.auto_acknowledge); messageproducer p = session.createproducer(queue); message msg = session.createtextmessage("hello world"); p.send(msg); this first failed classnotfound exception. after copied, hawtbuf-1.9.jar activemq gone. (is correct way it?)
than getting error:
[2013-05-22 01:10:34,967] error - jmsmessagereceiver unknown error processing message java.lang.runtimeexception: can not serialize om element envelope @ org.apache.axiom.om.impl.llom.omelementimpl.tostring(omelementimpl.java:994) @ java.lang.string.valueof(string.java:2854) @ java.lang.stringbuffer.append(stringbuffer.java:232) @ org.apache.synapse.mediators.builtin.logmediator.getfulllogmessage(logmediator.java:184) @ org.apache.synapse.mediators.builtin.logmediator.getlogmessage(logmediator.java:123) @ org.apache.synapse.mediators.builtin.logmediator.mediate(logmediator.java:91) @ org.apache.synapse.mediators.abstractlistmediator.mediate(abstractlistmediator.java:71) @ org.apache.synapse.mediators.base.sequencemediator.mediate(sequencemediator.java:114) @ org.apache.synapse.core.axis2.proxyservicemessagereceiver.receive(proxyservicemessagereceiver.java:154) @ org.apache.axis2.engine.axisengine.receive(axisengine.java:180) @ org.apache.axis2.transport.base.abstracttransportlistener.handleincomingmessage(abstracttransportlistener.java:328) @ org.apache.axis2.transport.jms.jmsmessagereceiver.processthoughengine(jmsmessagereceiver.java:200) @ org.apache.axis2.transport.jms.jmsmessagereceiver.onmessage(jmsmessagereceiver.java:122) @ org.apache.axis2.transport.jms.servicetaskmanager$messagelistenertask.handlemessage(servicetaskmanager.java:538) @ org.apache.axis2.transport.jms.servicetaskmanager$messagelistenertask.run(servicetaskmanager.java:441) @ org.apache.axis2.transport.base.threads.nativeworkerpool$1.run(nativeworkerpool.java:172) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1110) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:603) @ java.lang.thread.run(thread.java:722) caused by: com.ctc.wstx.exc.wstxioexception: invalid null character in text output @ com.ctc.wstx.sw.basestreamwriter.writecharacters(basestreamwriter.java:462) @ org.apache.axiom.util.stax.wrapper.xmlstreamwriterwrapper.writecharacters(xmlstreamwriterwrapper.java:100) @ org.apache.axiom.om.impl.mtomxmlstreamwriter.writecharacters(mtomxmlstreamwriter.java:289) @ org.apache.axiom.om.impl.serialize.streamingomserializer.serializetext(streamingomserializer.java:443) @ org.apache.axiom.om.impl.serialize.streamingomserializer.serializenode(streamingomserializer.java:173) @ org.apache.axiom.om.impl.serialize.streamingomserializer.serialize(streamingomserializer.java:107) @ org.apache.axiom.om.impl.serialize.streamingomserializer.serialize(streamingomserializer.java:76) @ org.apache.axiom.om.ds.wrappedtextnodeomdatasourcefromdatasource.serialize(wrappedtextnodeomdatasourcefromdatasource.java:75) @ org.apache.axiom.om.impl.llom.omsourcedelementimpl.internalserialize(omsourcedelementimpl.java:688) @ org.apache.axiom.om.impl.util.omserializerutil.serializechildren(omserializerutil.java:555) @ org.apache.axiom.om.impl.llom.omelementimpl.internalserialize(omelementimpl.java:875) @ org.apache.axiom.soap.impl.llom.soapenvelopeimpl.internalserialize(soapenvelopeimpl.java:230) @ org.apache.axiom.om.impl.llom.omserializableimpl.serialize(omserializableimpl.java:125) @ org.apache.axiom.om.impl.llom.omserializableimpl.serialize(omserializableimpl.java:113) @ org.apache.axiom.om.impl.llom.omelementimpl.tostring(omelementimpl.java:988) ... 18 more caused by: java.io.ioexception: invalid null character in text output @ com.ctc.wstx.api.invalidcharhandler$failinghandler.convertinvalidchar(invalidcharhandler.java:51) @ com.ctc.wstx.sw.xmlwriter.handleinvalidchar(xmlwriter.java:623) @ com.ctc.wstx.sw.bufferingxmlwriter.writecharacters(bufferingxmlwriter.java:554) @ com.ctc.wstx.sw.basestreamwriter.writecharacters(basestreamwriter.java:460) ... 32 more need this, thanks
edit:
i tried both on ubuntu , windows , failed.
i dont know if makes difference activemq connection string is:
amqp:///test/?brokerlist='tcp://localhost:5672'
when pick message queue haven't defined service level parameter indicate content-type. define proxy , check;
proxy xmlns="http://ws.apache.org/ns/synapse" name="proxy1" transports="jms" statistics="enable" trace="enable" startonload="true"> <target> <insequence> <log level="full"/> <drop/> </insequence> </target> <parameter name="transport.jms.contenttype"> <rules> <jmsproperty>contenttype</jmsproperty> <default>text/plain</default> </rules> </parameter> <parameter name="transport.jms.connectionfactory">myqueueconnectionfactory</parameter> <parameter name="transport.jms.destinationtype">queue</parameter> <parameter name="transport.jms.destination">txqueue</parameter> <description></description> </proxy>
Comments
Post a Comment