[ https://issues.apache.org/jira/browse/CXF-1668?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12622228#action_12622228 ]
Christian Schneider commented on CXF-1668: ------------------------------------------ Here is another related issue from Spring http://jira.springframework.org/browse/SWS-255 > Wrong encoding using JMS Transport > ---------------------------------- > > Key: CXF-1668 > URL: https://issues.apache.org/jira/browse/CXF-1668 > Project: CXF > Issue Type: Bug > Components: Transports > Affects Versions: 2.1 > Environment: MS Windows XP, Sun Solaris > Reporter: Eduard Hildebrandt > > In class JMSConduit getBytes() is used to transform the string in a byte > array. > byte[] bytes = null; > if (response instanceof String) { > String requestString = (String)response; > bytes = requestString.getBytes(); > } else { > bytes = (byte[])response; > } > getBytes() uses the standard encoding of the plattform. This is wrong because > the encoding of the message must be used. > I have written an interceptor as workaround to solve this issue: > public class EncodingInterceptor extends AbstractPhaseInterceptor<Message> { > public EncodingInterceptor() { > super(Phase.RECEIVE); > } > public void handleMessage(Message message) { > try { > InputStream inputStream = message.getContent(InputStream.class); > ByteArrayOutputStream baos = new ByteArrayOutputStream(); > while (true) { > int datum = inputStream.read(); > if (datum == -1) > break; > baos.write(datum); > } > String string = baos.toString(); > ByteArrayInputStream bais = new > ByteArrayInputStream(string.getBytes("UTF-8")); > message.setContent(InputStream.class, bais); > } catch (IOException e) { > e.printStackTrace(); > } > } > public void handleFault(Message messageParam) { > } > } > But the issue should be solved in JMSConduit class. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.