Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
3.0-M1
-
None
Description
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