I should also mention - this is Camel 2.0.0

jonathanq wrote:
> 
> I am trying to unmarshal an xml message from JMS that was originally
> marshaled using Xstream.
> 
> When I create the message I am doing this:
> 
> XStream xstream = new XStream(new DomDriver("ISO-8859-1"));
> template.sendBody(xstream.toXml(myObject));
> 
> 
> On the consuming process I have this in my route:
> 
> from(endpoint).unmarshal().xstream().process(myProcessor);
> 
> The XStream unmarshal always fails due to non-UTF-8 characters.  And the
> stacktrace shows that it was a UTF8 reader that failed.
> 
> So my question is - is there a way to initialize XStream to use a specific
> DomDriver (with an encoding).  Or any way to specify the encoding to use
> by default?
> 
> I tried adding this to the route (right after the from, and before the
> unmarshal):
> .setProperty(Exchange.CONTENT_ENCODING, constant("iso-8859-1"))
> 
> Didn't make a difference.
> 
> 
> Here is the stack trace:
> 
> Caused by: com.thoughtworks.xstream.io.StreamException:  : Invalid UTF-8
> start byte 0xa0 (at char #638, byte #-1)
>       at
> com.thoughtworks.xstream.io.xml.StaxReader.pullNextEvent(StaxReader.java:64)
>       at
> com.thoughtworks.xstream.io.xml.AbstractPullReader.readRealEvent(AbstractPullReader.java:137)
>       at
> com.thoughtworks.xstream.io.xml.AbstractPullReader.readEvent(AbstractPullReader.java:130)
>       at
> com.thoughtworks.xstream.io.xml.AbstractPullReader.move(AbstractPullReader.java:109)
>       at
> com.thoughtworks.xstream.io.xml.AbstractPullReader.moveDown(AbstractPullReader.java:94)
>       at com.thoughtworks.xstream.io.xml.StaxReader.<init>(StaxReader.java:44)
>       at com.thoughtworks.xstream.io.xml.StaxReader.<init>(StaxReader.java:34)
>       at
> org.apache.camel.dataformat.xstream.XStreamDataFormat.createHierarchicalStreamReader(XStreamDataFormat.java:83)
>       at
> org.apache.camel.dataformat.xstream.AbstractXStreamWrapper.unmarshal(AbstractXStreamWrapper.java:88)
>       at
> org.apache.camel.processor.UnmarshalProcessor.process(UnmarshalProcessor.java:51)
>       at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61)
>       at
> org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186)
>       at
> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155)
>       at
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88)
>       at
> org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49)
>       at
> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148)
>       at org.apache.camel.processor.Pipeline.process(Pipeline.java:74)
>       at
> org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54)
>       at
> org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
>       at
> org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
>       at
> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:170)
>       at
> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:156)
>       at
> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:141)
>       at
> org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:155)
>       at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:93)
>       at
> org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:97)
>       at
> org.apache.camel.impl.DefaultProducerTemplate.sendBodyAndHeader(DefaultProducerTemplate.java:136)
>       ... 29 more
> Caused by: com.ctc.wstx.exc.WstxIOException: Invalid UTF-8 start byte 0xa0
> (at char #638, byte #-1)
>       at com.ctc.wstx.sr.StreamScanner.throwFromIOE(StreamScanner.java:708)
>       at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1086)
>       at
> com.thoughtworks.xstream.io.xml.StaxReader.pullNextEvent(StaxReader.java:49)
>       ... 55 more
> Caused by: java.io.CharConversionException: Invalid UTF-8 start byte 0xa0
> (at char #638, byte #-1)
>       at com.ctc.wstx.io.UTF8Reader.reportInvalidInitial(UTF8Reader.java:302)
>       at com.ctc.wstx.io.UTF8Reader.read(UTF8Reader.java:188)
>       at com.ctc.wstx.io.ReaderSource.readInto(ReaderSource.java:84)
>       at
> com.ctc.wstx.io.BranchingReaderSource.readInto(BranchingReaderSource.java:57)
>       at com.ctc.wstx.sr.StreamScanner.loadMore(StreamScanner.java:992)
>       at com.ctc.wstx.sr.StreamScanner.getNext(StreamScanner.java:763)
>       at
> com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:1995)
>       at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1069)
> 

-- 
View this message in context: 
http://old.nabble.com/XStream-and-forcing-ISO-8859-1-Encoding-tp27328336p27328442.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to