【发布时间】:2018-09-14 14:48:16
【问题描述】:
如果 http 请求标头中未设置任何字符集,我的 SOAP Web 服务会以 ISO-8859-1 进行响应。
我尝试了以下方法:
- 在 jvm.options 中设置以下内容:-Dfile.encoding=UTF-8 -Duser.language=en -Duser.country=US -Dclient.encoding.override=UTF-8
- 设置环境变量(全局):DEFAULT_CLIENT_ENCODING=UTF-8
- 创建了一个 SOAP 处理程序,如果 Content-Type 中不存在,则添加 charset=UTF-8
但是,在 Liberty 日志中,我仍然看到传入的消息设置了以下标头:
Encoding: ISO-8859-1
Http-Method: POST
Content-Type: application/soap+xml;action="myWSmethod"
我们的最终用户倾向于在请求标头中不带字符集的情况下发送请求。我们曾经有传统的 WAS8,默认使用 UTF-8。 将 Liberty 设置为也使用 UTF-8 以某种方式失败。
server.xml 中是否有隐藏选项?
Liberty 使用 CXF,它正在拦截传入的消息并设置此标头。为什么还在使用 ISO?
亲切的问候
【问题讨论】:
标签: utf-8 character-encoding cxf websphere-liberty