[ 
https://issues.apache.org/jira/browse/CXF-8234?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17054573#comment-17054573
 ] 

Edwin commented on CXF-8234:
----------------------------

The reason the encoding is not set when transformation is used is because the 
method *getEncoding* in *StaxOutInterceptor* is never called.

I have found a workaround and I was wondering if I could ask you to please 
confirm if it is ok.  In an interceptor to be run before 
*TransformOutInterceptor*, the following code seems to do the trick:

 

 
{code:java}
Exchange ex = message.getExchange();
String encoding = (String)message.get(Message.ENCODING);
if (encoding == null && ex.getInMessage() != null) 
{
    encoding = (String) ex.getInMessage().get(Message.ENCODING);
    message.put(Message.ENCODING, encoding);
}
if (encoding == null) 
{
    encoding = StandardCharsets.UTF_8.name();
    message.put(Message.ENCODING, encoding);
}
OutputStream os = message.getContent(OutputStream.class);
message.setContent(XMLStreamWriter.class, StaxUtils.createXMLStreamWriter(os, 
encoding));
{code}
 

 

 

> Response Content-Type is missing 'charset' when Transformation feature is 
> enabled
> ---------------------------------------------------------------------------------
>
>                 Key: CXF-8234
>                 URL: https://issues.apache.org/jira/browse/CXF-8234
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-WS Runtime
>    Affects Versions: 3.2.6, 3.2.12
>            Reporter: Edwin
>            Priority: Major
>
> We have a JAXWS based service and we enabled the transformation feature based 
> on [https://cxf.apache.org/docs/transformationfeature.html], but then we 
> noticed that 'charset' is missing in response Content-Type.  This is probably 
> due to "disable.outputstream.optimization" being set to true by 
> TransformOutInterceptor but the documentation states that 
> "disable.outputstream.optimization" needs to be set to true prior to CXF 
> versions 3.2.6 and 3.1.17.
> We are using 3.2.6 and we even upgraded to 3.2.12 and the behavior is the 
> same.  I also checked TransformOutInterceptor in master branch and it is 
> still setting "disable.outputstream.optimization" to true.
> Is there a workaround for this issue in 3.2.x branch and can this be fixed in 
> future releases?
>  
> Here are part of the headers with transformation:
> {code:java}
> HTTP/1.1 200 
> Content-Type: text/xml
> Transfer-Encoding: chunked
> Date: Sun, 08 Mar 2020 22:41:04 GMT{code}
>  
> And here are part of the headers when transformation is not used:
> {code:java}
> HTTP/1.1 200 
> Content-Type: text/xml;charset=UTF-8
> Transfer-Encoding: chunked
> Date: Sun, 08 Mar 2020 22:40:43 GMT
> {code}
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to