我正在调用一个SOAP代理Web服务,它具有标头(用于身份验证)和正文(具有有效负载)。以下是我的肥皂要求。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:prox="http://webservices.com/ProxyService">
<soapenv:Header>
<prox:authentication>
<prox:user>admin</prox:user>
<prox:password>admin</prox:password>
</prox:authentication>
</soapenv:Header>
<soapenv:Body>
<!-- Here is the body -->
</soapenv:Body>
</soapenv:Envelope>
我正在使用apache camel。我能够创造身体。但我无法在代理请求中添加/设置标头。在代理请求到来时,它不包含任何标头。它只包含信封内的Body。 请帮我在soap请求中创建标题。
答案 0 :(得分:0)
您可以像这样构建一个soap header String
final String soapHeader = "<wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" soap:mustUnderstand=\"true\" xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\"><wsse:UsernameToken><wsse:Username>abhishek</wsse:Username><wsse:Password Type=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText\">diamond2989</wsse:Password></wsse:UsernameToken></wsse:Security>";
然后在交换期间添加此标题
exchange.getIn().setHeader(SpringWebserviceConstants.SPRING_WS_SOAP_HEADER, soapHeader);
更改字符串以满足您的要求