[
https://issues.apache.org/jira/browse/CXF-2475?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12766082#action_12766082
]
Michael Allman edited comment on CXF-2475 at 10/15/09 8:07 AM:
---------------------------------------------------------------
I don't understand how this can be the correct behavior.
First, can you tell me what section in what spec states that the character set
of the response should be the same as the character set of the request? I
searched WSI-BP and SOAP 1.2 and didn't find it.
Now here's why I think this can't be the correct behavior. Suppose a Web
service client sends an ISO-8859-1 encoded SOAP request to a Web service and
the response document is encoded in UTF-8. (For example, a client queries a
Unicode database.) If cxf sets the servlet response encoding to ISO-8859-1 and
the response document includes characters outside ISO-8859-1, the response will
be defective.
In my particular case, I have a subclass of CXFNonSpringServlet called
DatabaseWebServiceServlet. The first thing the invoke method of this class
does is set the response encoding to UTF-8 so that I can successfully write a
UTF-8 document. I expect cxf to respect that setting.
Also, on the topic of standards, consider HTTP 1.1. If the client expects the
response to be encoded in a certain character set, it should specify it in the
"Accept-Charset" request header (see
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.2 ). Otherwise,
the server is free to choose whatever character encoding it wants for the
response document.
Anyway, I don't see why the request document character set should be coupled to
the response document character set. The "Content-Type" is an entity header
that tells the recipient the media type (including charset where applicable) of
the entity body (see
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17 ). There's
nothing in the HTTP 1.1 spec that says this header, when used in a request,
specifies what the response media type or character set should be.
was (Author: [email protected]):
I don't understand how this can be the correct behavior.
First, can you tell me what section in what spec states that the character set
of the response should be the same as the character set of the request? I
searched WSI-BP and SOAP 1.2 and didn't find it.
Now here's why I think this can't be the correct behavior. Suppose a Web
service client sends an ISO-8859-1 encoded SOAP request to a Web service and
the response document is encoded in UTF-8. (For example, a client queries a
Unicode database.) If cxf sets the servlet response encoding to ISO-8859-1 and
the response document includes characters outside ISO-8859-1, the response will
be defective.
In my particular case, I have a subclass of CXFNonSpringServlet called
DatabaseWebServiceServlet. The first thing the invoke method of this class
does is set the response encoding to UTF-8 so that I can successfully write a
UTF-8 document. I expect cxf to respect that setting.
Also, on the topic of standards, consider HTTP 1.1. If the client expects the
response to be encoded in a certain character set, it should specify it in the
"Accept-Charset" request header (see
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.2). Otherwise,
the server is free to choose whatever character encoding it wants for the
response document.
Anyway, I don't see why the request document character set should be coupled to
the response document character set. The "Content-Type" is an entity header
that tells the recipient the media type (including charset where applicable) of
the entity body (see
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17). There's
nothing in the HTTP 1.1 spec that says this header, when used in a request,
specifies what the response media type or character set should be.
> When writing XML response, CXF uses request encoding instead of response
> encoding
> ---------------------------------------------------------------------------------
>
> Key: CXF-2475
> URL: https://issues.apache.org/jira/browse/CXF-2475
> Project: CXF
> Issue Type: Bug
> Components: Transports
> Affects Versions: 2.2.4, 2.2.5
> Reporter: Michael Allman
> Priority: Minor
> Attachments: AbstractHTTPDestination.patch
>
>
> When writing the SOAP XML response, CXF uses the ServletRequest encoding
> instead of the ServletResponse encoding.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.