Guillaume,
I'm working on a junit test, but I'm not familiar with the junit standalone
way of testing so it takes some time.
However, I think that the problem is two-folded. In AbstractJmsProcessor,
the input (TextMessage) is converted to a ByteArrayInputStream. This stream
is later on read by the SoapReader. The problem by converting the input to a
byte array is that how a byte array should be read depends on the encoding,
which is lost. Thus a problem with ISO-8859-1. This should then be a problem
in the JMS component or the smx-soap lib (or possibly both).
The other problem is that UTF-8 is hard coded in the SourceTransformer
(smx-core), as earlier mentined.
Any thoughts on this? Is there a reason for converting the jms input to a
byte array?
/Anders
gnodet wrote:
>
> Could you set up a simple junit test to reproduce the problem ?
> Also you may want to try to send a BytesMessage as I guess you
> send a TextMessage. If may be a workaround.
>
> On 12/6/06, Anders Hammar <[EMAIL PROTECTED]> wrote:
>>
>> I'm trying to post a ISO-8859-1 encoded xml message to a queue and read
>> that
>> with a jms BC. It works if the xml message is UTF-8 encoded, but
>> ISO-8859-1
>> doesn't work. Do I need to do any specific configuration for this? (The
>> xml
>> message states that the encoding is ISO-8859-1.)
>>
>> I get these error messages:
>>
>> 429217 DEBUG - tandardConsumerProcessor -
>> .servicemix.jms.standard.StandardConsumerProcessor - Received jms message
>> ActiveMQTextMessage {commandId = 6, responseRequired = false, messageId =
>> ID:PC-614210-3920-1165333854368-1:17:1:1:1, originalDestination = null,
>> originalTransactionId = null, producerId =
>> ID:PC-614210-3920-1165333854368-1:17:1:1, destination =
>> queue://se.c.b.a.dummy, transactionId =
>> TX:ID:PC-614210-3920-1165333854368-1:17:1, expiration = 0, timestamp =
>> 1165397924547, arrival = 0, correlationId = null, replyTo = null,
>> persistent
>> = true, type = null, priority = 4, groupID = null, groupSequence = 0,
>> targetConsumerId = null, compressed = false, userID = null, content =
>> [EMAIL PROTECTED], marshalledProperties =
>> null,
>> dataStructure = null, redeliveryCounter = 0, size = 0, properties = null,
>> readOnlyProperties = true, readOnlyBody = true, text = null}
>> 429217 DEBUG - DeliveryChannelImpl -
>> pache.servicemix.jbi.messaging.DeliveryChannelImpl - SendSync
>> ID:PC-614210-2833-1165397495410-6:1 in DeliveryChannel{servicemix-jms}
>> [Fatal Error] :16:14: Invalid byte 2 of 3-byte UTF-8 sequence.
>> 429257 DEBUG - DeliveryChannelImpl -
>> pache.servicemix.jbi.messaging.DeliveryChannelImpl - Sent: InOnly[
>> id: ID:PC-614210-2833-1165397495410-6:1
>> status: Active
>> role: consumer
>> service: {http://b.c.se/a}loggare
>> in: Unable to display: org.xml.sax.SAXParseException: Invalid byte 2 of
>> 3-byte UTF-8 sequence.
>> ]
>> [Fatal Error] :1:1: Content is not allowed in prolog.
>> 429267 DEBUG - DefaultBroker -
>> org.apache.servicemix.jbi.nmr.DefaultBroker - Routing exchange
>> InOnly[
>> id: ID:PC-614210-2833-1165397495410-6:1
>> status: Active
>> role: provider
>> service: {http://b.c.se/a}loggare
>> endpoint: loggare
>> in: Unable to display: org.xml.sax.SAXParseException: Content is not
>> allowed in prolog.
>> ] to: ServiceEndpoint[service={http://b.c.se/a}loggare,endpoint=loggare]
>> [Fatal Error] :1:1: Content is not allowed in prolog.
>> 429277 DEBUG - DefaultBroker -
>> org.apache.servicemix.jbi.nmr.DefaultBroker - Routing exchange
>> InOnly[
>> id: ID:PC-614210-2833-1165397495410-6:1
>> status: Active
>> role: provider
>> service: {http://b.c.se/a}loggare
>> endpoint: loggare
>> in: Unable to display: org.xml.sax.SAXParseException: Content is not
>> allowed in prolog.
>> ] to: ServiceEndpoint[service={http://b.c.se/a}loggare,endpoint=loggare]
>> 429287 DEBUG - SedaFlow -
>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow - Called Flow send
>> 429287 DEBUG - DeliveryChannelImpl -
>> pache.servicemix.jbi.messaging.DeliveryChannelImpl - Waiting for exchange
>> ID:PC-614210-2833-1165397495410-6:1 (1e5a5dc) to be answered in
>> DeliveryChannel{servicemix-jms} from sendSync
>> [Fatal Error] :1:1: Content is not allowed in prolog.
>> 429287 DEBUG - SedaQueue -
>> rg.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1 -
>> [EMAIL PROTECTED] dequeued
>> exchange: InOnly[
>> id: ID:PC-614210-2833-1165397495410-6:1
>> status: Active
>> role: provider
>> service: {http://b.c.se/a}loggare
>> endpoint: loggare
>> in: Unable to display: org.xml.sax.SAXParseException: Content is not
>> allowed in prolog.
>> ]
>> [Fatal Error] :1:1: Content is not allowed in prolog.
>> 429307 DEBUG - DeliveryChannelImpl -
>> pache.servicemix.jbi.messaging.DeliveryChannelImpl - Processing inbound
>> exchange: InOnly[
>> id: ID:PC-614210-2833-1165397495410-6:1
>> status: Active
>> role: provider
>> service: {http://b.c.se/a}loggare
>> endpoint: loggare
>> in: Unable to display: org.xml.sax.SAXParseException: Content is not
>> allowed in prolog.
>> ]
>> [Fatal Error] :1:13: The markup in the document preceding the root
>> element
>> must be well-formed.
>> 429317 DEBUG - DeliveryChannelImpl -
>> pache.servicemix.jbi.messaging.DeliveryChannelImpl - Received: InOnly[
>> id: ID:PC-614210-2833-1165397495410-6:1
>> status: Active
>> role: provider
>> service: {http://b.c.se/a}loggare
>> endpoint: loggare
>> in: Unable to display: org.xml.sax.SAXParseException: The markup in the
>> document preceding the root element must be well-formed.
>> ]
>> [Fatal Error] :1:3: Invalid byte 2 of 4-byte UTF-8 sequence.
>> 429327 INFO - TraceComponent -
>> g.apache.servicemix.components.util.TraceComponent - Exchange: InOnly[
>> id: ID:PC-614210-2833-1165397495410-6:1
>> status: Active
>> role: provider
>> service: {http://b.c.se/a}loggare
>> endpoint: loggare
>> in: Unable to display: org.xml.sax.SAXParseException: Invalid byte 2 of
>> 4-byte UTF-8 sequence.
>> ] received IN message:
>> [EMAIL PROTECTED]:
>> {}}
>> [Fatal Error] :-1:-1: Premature end of file.
>> 429367 ERROR - TraceComponent -
>> g.apache.servicemix.components.util.TraceComponent - Failed to turn
>> message
>> body into text: javax.xml.transform.TransformerException:
>> org.xml.sax.SAXParseException: Premature end of file.
>> javax.xml.transform.TransformerException: org.xml.sax.SAXParseException:
>> Premature end of file.
>> at
>> org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:501)
>> at
>> org.apache.servicemix.jbi.jaxp.SourceTransformer.toResult(SourceTransformer.java:88)
>> at
>> org.apache.servicemix.jbi.jaxp.SourceTransformer.toString(SourceTransformer.java:104)
>> at
>> org.apache.servicemix.components.util.TraceComponent.onMessageExchange(TraceComponent.java:66)
>> at
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:624)
>> at
>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)
>> at
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:177)
>> at
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:227)
>> at
>> org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:291)
>> at
>> EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown
>> Source)
>> at java.lang.Thread.run(Thread.java:595)
>> Caused by: org.xml.sax.SAXParseException: Premature end of file.
>> at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
>> Source)
>> at
>> org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:484)
>> ... 10 more
>> ---------
>> org.xml.sax.SAXParseException: Premature end of file.
>> at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
>> Source)
>> at
>> org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:484)
>> at
>> org.apache.servicemix.jbi.jaxp.SourceTransformer.toResult(SourceTransformer.java:88)
>> at
>> org.apache.servicemix.jbi.jaxp.SourceTransformer.toString(SourceTransformer.java:104)
>> at
>> org.apache.servicemix.components.util.TraceComponent.onMessageExchange(TraceComponent.java:66)
>> at
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:624)
>> at
>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)
>> at
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:177)
>> at
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:227)
>> at
>> org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:291)
>> at
>> EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown
>> Source)
>> at java.lang.Thread.run(Thread.java:595)
>> 429397 DEBUG - DeliveryChannelImpl -
>> pache.servicemix.jbi.messaging.DeliveryChannelImpl - Send
>> ID:PC-614210-2833-1165397495410-6:1 in DeliveryChannel{loggare}
>> [Fatal Error] :-1:-1: Premature end of file.
>> 429397 DEBUG - DeliveryChannelImpl -
>> pache.servicemix.jbi.messaging.DeliveryChannelImpl - Sent: InOnly[
>> id: ID:PC-614210-2833-1165397495410-6:1
>> status: Done
>> role: provider
>> service: {http://b.c.se/a}loggare
>> endpoint: loggare
>> in: Unable to display: org.xml.sax.SAXParseException: Premature end of
>> file.
>> ]
>> 429407 DEBUG - SedaFlow -
>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow - Called Flow send
>> [Fatal Error] :-1:-1: Premature end of file.
>> 429427 DEBUG - SedaQueue -
>> rg.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1 -
>> [EMAIL PROTECTED] dequeued
>> exchange: InOnly[
>> id: ID:PC-614210-2833-1165397495410-6:1
>> status: Done
>> role: consumer
>> service: {http://b.c.se/a}loggare
>> endpoint: loggare
>> in: Unable to display: org.xml.sax.SAXParseException: Premature end of
>> file.
>> ]
>> [Fatal Error] :-1:-1: Premature end of file.
>> 429437 DEBUG - DeliveryChannelImpl -
>> pache.servicemix.jbi.messaging.DeliveryChannelImpl - Processing inbound
>> exchange: InOnly[
>> id: ID:PC-614210-2833-1165397495410-6:1
>> status: Done
>> role: consumer
>> service: {http://b.c.se/a}loggare
>> endpoint: loggare
>> in: Unable to display: org.xml.sax.SAXParseException: Premature end of
>> file.
>> ]
>> 429437 DEBUG - DeliveryChannelImpl -
>> pache.servicemix.jbi.messaging.DeliveryChannelImpl - Notifying exchange
>> ID:PC-614210-2833-1165397495410-6:1(1e5a5dc) in
>> DeliveryChannel{servicemix-jms} from processInboundSynchronousExchange
>> 429437 DEBUG - DeliveryChannelImpl -
>> pache.servicemix.jbi.messaging.DeliveryChannelImpl - Notified:
>> ID:PC-614210-2833-1165397495410-6:1(1e5a5dc) in
>> DeliveryChannel{servicemix-jms} from sendSync
>> --
>> View this message in context:
>> http://www.nabble.com/Problem-with-ISO-8859-1-encoding-and-jms-component-tf2767158s12049.html#a7716631
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
>
>
> --
> Cheers,
> Guillaume Nodet
>
>
--
View this message in context:
http://www.nabble.com/Problem-with-ISO-8859-1-encoding-and-jms-component-tf2767158s12049.html#a7754648
Sent from the ServiceMix - User mailing list archive at Nabble.com.