CXF web服务(Java)中预期摘要和实际摘要之间的差异

CXF web服务(Java)中预期摘要和实际摘要之间的差异,java,web-services,soap,digital-signature,Java,Web Services,Soap,Digital Signature,我已经在CXF中完成了一个web服务,并且只使用javax.xml.crypto就完成了一个客户机 包实用程序。在客户端,当我检查签名的有效性时,它表示有效。其中,我的正文部分摘要为“3BXXHthnTP9kC1YB6FPUrpnO72wNuPmWerwglakCGiY=” 然后,生成的SOAP消息被发送,在web服务端,它说实际的摘要是其他东西,但不是我在客户端得到的 有人能解释一下吗? 谢谢我正在从文件中读取SOAP消息。有一些非UTF8字符 包含在要消化的文档中。然而,我在《文摘》之前进行

我已经在CXF中完成了一个web服务,并且只使用javax.xml.crypto就完成了一个客户机 包实用程序。在客户端,当我检查签名的有效性时,它表示有效。其中,我的正文部分摘要为“3BXXHthnTP9kC1YB6FPUrpnO72wNuPmWerwglakCGiY=”

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

有人能解释一下吗?
谢谢

我正在从文件中读取SOAP消息。有一些非UTF8字符 包含在要消化的文档中。然而,我在《文摘》之前进行了规范化,它应该解决这类问题。代码修改为只读UTF-8数据,并修复了该问题

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 
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);