繁体   English   中英

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

[英]Change the response character set on CXF web service

我们继承了使用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"); 

您可以在返回的Response中设置编码:

MyResponse response = new MyResponse();
//.... some code here
return Response.ok(response).encoding("Cp1252").build();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM