gpt4 book ai didi

java spring ws : webServiceTemplate. marshalSendAndReceive 在发送之前签署文档

转载 作者:行者123 更新时间:2023-12-01 23:23:09 33 4
gpt4 key购买 nike

我尝试在发送文档请求之前对其进行签名,但是在检索请求文档时通过Document doc = soapMessage.getSOAPPart().getEnvelope().getOwnerDocument();并将其传递给签名方法,该方法将对其进行签名并使用签名节点更改文档,我得到的响应是 org.springframework.ws.soap.client.SoapFaultClientException: Validation failed with digest wrong.

但是,当我用断点调试代码时,我在方法 doWithMessage 中设置了断点(在下面的代码片段中用 lambda 表达式替换)在 certificationService.signDocument(doc, actionName, "Request", company); 之前的任何行中,我收到了正确的响应,正如预期的那样。

我是否遗漏了什么,因为我在网上找不到任何类似的问题。我被困在这里了...

下面的片段代码:

return webServiceTemplate.marshalSendAndReceive(
config.getWebServiceUrl(),
req,
message -> {
try {
SaajSoapMessage saajSoapMessage = (SaajSoapMessage) message;
SOAPMessage soapMessage = saajSoapMessage.getSaajMessage();
Document doc = soapMessage.getSOAPPart().getEnvelope().getOwnerDocument();

saajSoapMessage.setSoapAction(SoapClientConfig.ACTION_BASE_URL + actionName);

certificationService.signDocument(doc, actionName, "Request", company);
soapMessage.saveChanges();

} catch (Exception e) {
e.printStackTrace();
}
});

最佳答案

问题已解决。我使用的是 java 12,我不知道为什么会出现这个问题,但切换到 java 8 解决了它。

关于java spring ws : webServiceTemplate. marshalSendAndReceive 在发送之前签署文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58320400/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com