示例:使用 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 头。

避免故障 避免故障: 这些 API 扩展以及标准 API 不能用于在相同 JAX-WS 处理程序中编辑 SOAP 头。在设置对 JAX-WS 处理程序的 SOAP 头编辑处理时,您必须确定是使用这些扩展,还是使用标准 API。gotcha
以下编程示例说明如何在 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。

指示主题类型的图标 参考主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwbs_manipulatesoapjaxwshandler
文件名:rwbs_manipulatesoapjaxwshandler.html