示例:使用 JAX-WS 属性来编辑 JAX-WS 处理程序中的 SOAP 头
WebSphere® Application Server 向 Java™ API for XML-Based Web Services (JAX-WS) 和 Web Services for Java Platform, Enterprise Edition (Java EE) 客户机编程模型提供扩展,其中包括 jaxws.binding.soap.headers.outbound 和 jaxws.binding.soap.headers.inbound 属性。此示例显示如何使用这两个属性来编辑 JAX-WS 处理程序中的 SOAP 头。

以下编程示例说明如何在 JAX-WS 处理程序上下文中设置两个请求 SOAP 头和接收一个响应 SOAP 头:
1 //Create the hashmaps for the outbound soap headers
2 Map<QName, List<String>> outboundHeaders=messageContext.get("jaxws.binding.soap.headers.outbound");
3 4 //Add "AtmUuid1" and "AtmUuid2" to the outbound map
5 List<String> list1 = new ArrayList<String>();
6 list1.add("<AtmUuid1 xmlns=\"com.rotbank.security\"><uuid>ROTB-0A01254385FCA09</uuid></AtmUuid1>");
7 List<String> list2 = new ArrayList<String>();
8 list2.add("<AtmUuid2 xmlns=\"com.rotbank.security\"><uuid>ROTB-0A01254385FCA09</uuid></AtmUuid2>"
9 outboundHeaders.put(new QName("com.rotbank.security", "AtmUuid1"), list1);
10 outboundHeaders.put(new QName("com.rotbank.security", "AtmUuid2"), list2);
11 // Set the outbound map on the MessageContext object, which is passed into the JAX-WS handler method
12 messageContext.put("jaxws.binding.soap.headers.outbound", outboundHeaders);
在第 2 行中,检索 MessageContext 参数中的出站 SOAP 头,该参数已传递到 JAX-WS 处理程序方法中。
在第 5 行到第 10 行上,将 AtmUuid1 和 AtmUuid2 头元素添加到出站映射。
在第 12 行上,对 JAX-WS 处理程序上下文设置出站映射,这会导致将 AtmUuid1 和 AtmUuid2 头添加到请求消息。此代码不是必需代码,这是因为 outboundHeaders 映射是实时映射。
JAX-WS 处理程序方法还可能从映射中检索特定的头并根据需要移除头或整个头列表。
注: 请只使用这些 API 或只使用标准 API 来处理消息。请不要混合使用这两种 API。