我正在处理一个 Spring-WS 项目,我正在尝试使用某个 SOAP 服务,但是我遇到了请求的 Header 标记的一些问题。
PS:我在 SOAP UI 上运行了相同的请求,它运行良好。
这是我运行的代码:
JAXBElement<ChangeOtherIDsRequestType> request = createRequestBody();
WebServiceTemplate template = new WebServiceTemplate(marshaller);
template.setDefaultUri(URI);
@SuppressWarnings({ "unchecked" })
JAXBElement<ChangeOtherIDsResponseType> response = (JAXBElement<ChangeOtherIDsResponseType>) template
.marshalSendAndReceive(request, new WebServiceMessageCallback() {
@Override
public void doWithMessage(WebServiceMessage message) {
Instant instant = Instant.now();
SaajSoapMessage saajSoapMessage = (SaajSoapMessage) message;
SOAPMessage soapMessage = saajSoapMessage.getSaajMessage();
SOAPPart soapPart = soapMessage.getSOAPPart();
此代码应该在请求中添加 Header 标记,它用于通过“用户名”和“密码”对用户进行身份验证。
让我们看看我的结果中缺少一些东西,例如:
“密码”和“随机数”标签上的“wsse”前缀。
“用户名”标签上的“用户名令牌”属性。
“Nonce”标签的值。
我在尝试解决这些问题时遇到了一些问题,但我仍然有一些问题:
当我尝试将“wsse”前缀添加到“Username”和“Nonce”标签时:整个“Header”标签消失了。(我使用了与“用户名”标签相同的技术)
SOAP UI 如何生成“Nonce”值?
SOAP UI 如何生成“UsernameToken”值?
最后的手段,是否有另一种方式来模拟 SOAP UI 请求?
qq_笑_17
相关分类