I was getting intermittent failures on invoking ODE through an http endpoint.
The stacktrace indicated problems in parsing the XML message but all of the
messages were well formed and valid according to the interface. I verified this
on the client side and with tcpmon. There's a sample stacktrace below. The
error messages were always about malformed xml and reported problems about
encountering the wrong closing tag or other unexpected characters as below.
I didn't see any other traffic on this issue so I was wondering if it was some
kind of config issue with ServiceMix 3.3 and ODE 1.2. The code in ODE for
parsing this looks good. I was able to work around this issue by adding the
soap:dom policy to my consumer endpoint and everything is working fine now.
For example:
<http:endpoint ...> <http:policies> <soap:dom
xmlns:soap="http://servicemix.apache.org/soap/1.0"/> </http:policies>
</http:endpoint>
Sample stacktrace:
WARN - ServiceMixMapper - Unable to parse message:
org.apache.ode.jbi.msgmap.MessageTranslationException: Message parsing exception
at org.apache.ode.jbi.msgmap.BaseXmlMapper.parse(BaseXmlMapper.java:55)
at
org.apache.ode.jbi.msgmap.ServiceMixMapper.isRecognized(ServiceMixMapper.java:57)
at org.apache.ode.jbi.OdeContext.findMapper(OdeContext.java:238)
at org.apache.ode.jbi.OdeService.invokeOde(OdeService.java:235)
at org.apache.ode.jbi.OdeService.onJbiMessageExchange(OdeService.java:148)
at
org.apache.ode.jbi.JbiMessageExchangeEventRouter.onJbiMessageExchange(JbiMessageExchangeEventRouter.java:67)
at org.apache.ode.jbi.Receiver$1.run(Receiver.java:179)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.IOException: com.ctc.wstx.exc.WstxUnexpectedCharException:
Unexpected character '<' (code 60) excepted space, or '>' or "/>"
at [row,col {unknown-source}]: [1,4129]
at
org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:501)
at org.apache.ode.utils.DOMUtils.sourceToDOM(DOMUtils.java:661)
at org.apache.ode.jbi.msgmap.BaseXmlMapper.parse(BaseXmlMapper.java:51)
... 12 more
--
Mark Ford
MIT Lincoln Laboratory
244 Wood Street
Lexington MA 02420
(781) 981-1843