我使用Axis2使用消息签名(在Websphere上运行服务)为WebService构建了一个客户端。
客户端工作正常,但在某些情况下,服务会发送包含HTML字符引用的响应(对于波兰国家字符 - 例如ł
),然后签名验证失败。
我在经过一些研究后发现,轴使用的xml解析器在解析时会将HTML字符引用更改为UTF-8字符,这可能是失败的原因。
有没有人有类似的问题或者有一些想法如何处理它?</ p>
答案 0 :(得分:0)
在解析期间,XML文本内容将转换为Java字符串,即b.t.w。使用UTF-16编码。为了获得一致的结果,XML签名需要XML规范化,这要求XML文档以UTF-8字符流进行编码。
这些都没有表明字符引用是错误的来源。我宁愿搜索建议的编码(在SOAP有效负载,在HTTP标头等中)和不使用字符引用编码的非ascii字符之间的不一致。