[
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)