如何删除apache axis 2消息响应的字符编码

时间:2009-07-29 20:46:01

标签: java web-services axis2

我们使用Axis2生成Web服务响应,其中正文是从使用Windows 1252作为编码的系统生成的xml消息。我们的Axis2系统将使用utf8将这个主体包裹在soap消息中。然后将该消息发送给呼叫者。但是,调用者通过“1字节UTF-8的无效字节1”

拒绝该消息

调用者系统建议我在响应的xml声明中取出encoding属性。我不知道怎么告诉轴不要把这个设置。谁知道怎么样?

2 个答案:

答案 0 :(得分:1)

最好将Axis响应保持为UTF-8,而是尝试将有效负载的编码从1252更改为UTF-8。你是如何从有效载荷中组装SOAP响应的?

答案 1 :(得分:1)

原始XML的编码是否在XML标头中正确声明为Windows-1252?如果没有,它不是真正的XML而且系统被破坏了;如果它被声明并且Axis2只是将它重新标记为UTF-8而没有实际转换数据,则Axis2(非常严重)被破坏。

在任何一种情况下,修复损坏的系统。不要删除编码 - 这是你可以做的最糟糕的事情。如上所述:没有声明编码的XML不是XML,它的随机数据可能看起来像XML一样模糊。