首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CXF web服务(Java)中预期摘要和实际摘要的区别

CXF web服务(Java)中预期摘要和实际摘要的区别
EN

Stack Overflow用户
提问于 2014-06-30 11:49:12
回答 1查看 713关注 0票数 0
代码语言:javascript
复制
16:56:06,477 DEBUG DOMReference:398 - Expected digest: 3BXXHthnTP9kC1YB6FPUrpnO72wNuPmWerwglakCGiY=
16:56:06,477 DEBUG DOMReference:399 - Actual digest: hesLZ/G8ekBPdFNGrxIJmxSYhhMC/BBHD6x/pHqXJt4=
16:56:06,477 DEBUG DOMXMLSignature:276 - Reference[#Body] is valid: false 

我有一个用CXF完成的web服务,我只使用javax.xml.crypto包实用程序就完成了一个客户端。在客户端,当我检查签名的有效性时,它说是有效的。在这里我有"3BXXHthnTP9kC1YB6FPUrpnO72wNuPmWerwglakCGiY=".的身体切片摘要

然后,生成的SOAP消息被发送,在web服务端,它说实际摘要是其他东西,而不是我在客户端得到的东西。

有人能解释一下这件事吗?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-01 06:06:56

我是从一个文件中读取SOAP消息的。有一些非UTF8 8字符被纳入消化。然而,在消化之前,我是在规范化的,这应该解决这类问题。代码修改为只读取UTF-8数据,并解决了这个问题.

代码语言:javascript
复制
File attachmentFile = new File("soap_sample.xml");
    FileInputStream fis = new FileInputStream(attachmentFile);
    InputStreamReader isr = new InputStreamReader(fis, "UTF8");
    BufferedReader in = new BufferedReader(isr);

    StringBuffer buffer = new StringBuffer();

    String inputLine = null;
    while ((inputLine = in.readLine()) != null) {
        buffer.append(inputLine);
    }

    InputStream is = IOUtils.toInputStream(buffer.toString(), "UTF-8");

    SOAPMessage soapMessage = MessageFactory.newInstance().createMessage(new MimeHeaders(), is);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24489464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档