使用 JAX-WS 的典型 SOAP 客户端请求可能是
FooService service = new FooService();
FooPort port = service.getFooPort();
FooPayload payload = new FooPayload();
payload.setHatSize(3);
payload.setAlias("The Hat");
...
port.processRequest(payload);
这会生成一个 HTTP 请求内容,例如
<?xml ... ?>
<S:Envelope xmlns:S="http://...soap-envelope">
<S:Body>
<!-- payload -->
</S:Body>
</S:Envelope>
通过操纵 port.processRequest() 调用的参数,您只能影响“有效负载”部分。您不能影响 XML 消息的外部。
我想在 SOAP 正文之前插入一个 SOAP 标头
<S:Header>
<X:Security xmlns:X="http://...wsssecurity...>
<X:BinarySecurityToken>kjh...897=</X:BinarySecurityToken>
</X:Security>
</S:Header>
我怎么做?