我正在使用Apache CXF来创建SOAP客户端。 Web服务响应包含以下变音字符:[0xc3][0x9c]
,这是Ü
。
当我读取响应时,我可以手动转换此字段:
String utfString = new String(isoString.getBytes("ISO-8859-1"), "utf-8");
但我宁愿将客户端设置为自动将ISO转换为UTF8字符串。
问题:如何在全局CXF客户端中为任何传入请求配置此功能?
答案 0 :(得分:0)
您可以设置编码,如下所示。
@Bean
public KPWs kpMath(SpringBus bus) {
final JAXWSSpringClientProxyFactoryBean client = new JAXWSSpringClientProxyFactoryBean();
client.setBus(bus);
client.setAddress("http://localhost:8080/services/ws ?wsdl");
client.getFeatures().add(new LoggingFeature());
Map<String, Object> map = new HashMap<>();
map.put("org.apache.cxf.message.Message.ENCODING", "ISO-8859-1");
client.setProperties(map);
return client.create(KPWs.class);
}