XMLStreamHelper / servicemix-jms won't transport XML with top element not in a namepsace, and has problems with top level default namespace not bound to a prefix -----------------------------------------------------------------------------------------------------------------------------------------------------------------
Key: SM-469 URL: https://issues.apache.org/activemq/browse/SM-469 Project: ServiceMix Type: Bug Components: servicemix-core, servicemix-jms Versions: 3.0-M1 Reporter: Michael Studman Attachments: xbean.xml While using servicemix-jms, I've encountered several problems when creating a provider endpoint. It seems to boil down to: If I send this <xml-payload/> as the in XML I get: Caused by: javax.xml.stream.XMLStreamException: NamespaceURI cannot be null at com.sun.xml.stream.writers.XMLStreamWriterImpl.writeStartElement(XMLStreamWriterImpl.java:833) at org.apache.servicemix.jbi.jaxp.XMLStreamHelper.writeStartElement(XMLStreamHelper.java:122) at org.apache.servicemix.jbi.jaxp.XMLStreamHelper.writeStartElement(XMLStreamHelper.java:155) at org.apache.servicemix.jbi.jaxp.XMLStreamHelper.writeStartElementAndAttributes(XMLStreamHelper.java:160) at org.apache.servicemix.jbi.jaxp.XMLStreamHelper.copyOne(XMLStreamHelper.java:85) at org.apache.servicemix.jbi.jaxp.XMLStreamHelper.copy(XMLStreamHelper.java:71) at org.apache.servicemix.soap.marshalers.SoapWriter.writeContents(SoapWriter.java:196) at org.apache.servicemix.soap.marshalers.SoapWriter.writeSimpleMessage(SoapWriter.java:111) at org.apache.servicemix.soap.marshalers.SoapWriter.write(SoapWriter.java:80) at org.apache.servicemix.jms.multiplexing.MultiplexingProviderProcessor.process(MultiplexingProviderProcessor.java:177) at org.apache.servicemix.common.BaseLifeCycle.processExchange(BaseLifeCycle.java:374) at org.apache.servicemix.common.BaseLifeCycle$2.run(BaseLifeCycle.java:240) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) at java.lang.Thread.run(Thread.java:595) If I send <xml-payload xmlns="urn:whatever"/> my service gets <xml-payload xmlns="urn:whatever" xmlns="urn:whatever"/> which, of course, is not well formed. If I send <whatever:xml-payload xmlns:whatever="urn:whatever"/> everything works. Certainly the first problem looks to be in XMLStreamHelper where it calls the namespace overloaded version of XMLStreamWriterImpl.writeStartElement which requires the namespace to be non-null. I'm unsure of the source of the second problem. I've attached my xbean.xml so you know how I've set up the consumer / providers -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/activemq/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira