Hi,

We have made our own binding component and we have a problem with the
encoding. We are using Servicemix 3.2.1

The message that we received used ISO-8859-1, and our code is this:

********************************************************************************************

protected void processMessage (InputStream entrada, int socketId, int[]
eofDelim)
        throws Exception
    {
        InOnly exchange = getExchangeFactory().createInOnlyExchange();
        configureExchangeTarget(exchange);
        NormalizedMessage message = exchange.createMessage();
        message.setProperty("socketId", Integer.valueOf(socketId));
        exchange.setInMessage(message);

        String messageContent = readMessage();

        message.setContent(new StreamSource(new
StringReader(messageContent)));

        try
       {
               sendSync(exchange);
       }

        catch (Exception e)
        {
            mLogger.error("We had an exception in Socket Reader: " + e);
            e.printStackTrace();
            return;
        }
    }
********************************************************************************************

Where readMessage read the message content from a socket. We have debuged
the code and the messageContent is readed correctly (with the correct
ISO-8859-1 encoding) with this header:

<?xml version='1.0' encoding='ISO-8859-1'?>

When we set the content of the NormalizedMessage the content is still
correct, with the same xml header. But the exchange has this header (and the
message is sended to the bus in this way):

<?xml version="1.0" encoding="UTF-8"?>

We have set the charset to ISO-8859-1 in the servicemix.properties files but
we have the same problem.

How can we fix this problem?

Thanks

Reply via email to