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

Reply via email to