You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Christian Schneider (JIRA)" <ji...@apache.org> on 2009/10/11 00:44:31 UTC
[jira] Updated: (CXF-1668) Wrong encoding using JMS Transport
[ https://issues.apache.org/jira/browse/CXF-1668?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Christian Schneider updated CXF-1668:
-------------------------------------
Issue Type: Improvement (was: Bug)
Changing type to improvement as there is already a fix for the bug mentioned.
> Wrong encoding using JMS Transport
> ----------------------------------
>
> Key: CXF-1668
> URL: https://issues.apache.org/jira/browse/CXF-1668
> Project: CXF
> Issue Type: Improvement
> 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.