java - 更改 CXF Web 服务上的响应字符集

标签 java web-services cxf

我们继承了一个使用 Apache CXF 编写的 Web 服务。响应中的文本字段包含单引号和“en”破折号 (ascii 150) 等字符。这些在响应中显示为正方形(使用 SoapUI)或问号。

文本来自设置为 WE8MSWIN1252 字符集的 Oracle 数据库。我想我需要将 Web 服务响应的编码/字符集设置为匹配(即 Windows-1252),但找不到地方可以做到这一点。

我可以对文本进行 XML 编码(例如,这些破折号显示为 –)。但是,如果可以使用本地支持这些字符的字符集,这似乎更可取,对吗?

知道如何更改 SOAP 响应的编码吗?

最佳答案

请尝试将以下代码添加到您的 Apache CXF Web 服务方法中。

import org.apache.cxf.message.Message;
import org.apache.cxf.phase.PhaseInterceptorChain;

Message message = PhaseInterceptorChain.getCurrentMessage(); 
message.put(Message.ENCODING, "Cp1252"); 

关于java - 更改 CXF Web 服务上的响应字符集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15528709/

相关文章:

java - 使用 elasticache 的日志中的 DNS 错误

java - 使用机器人自动点击?

c# - 对象无法序列化,因为它没有无参数构造函数

c# - .NET Core 中的 SOAP?

java - 在 Java 中是否可以显式返回 401 Unauthorized 响应代码

security - javax.xml.ws.WebServiceException : java. lang.RuntimeException:包含值不正确:null

java - 调用 soap 时出现奇怪的错误 - llegalAccessError : tried to access field org. apache.cxf.staxutils.OverlayW3CDOMStreamWriter.isOverlaid

java 位操作 >>> 移位

java - '无效的'?类(class)分配问题

java - Apache CXF 和 WS-Security - 密码回调