background image

SOAPHeaderElement

<< Header Attributes | The role Attribute >>
<< Header Attributes | The role Attribute >>

SOAPHeaderElement

Additional actors can be set in their own SOAPHeaderElement objects. The following code
fragment first uses the SOAPMessage object message to get its SOAPHeader object header. Then
header
creates four SOAPHeaderElement objects, each of which sets its actor attribute.
SOAPHeader header = message.getSOAPHeader();
SOAPFactory soapFactory = SOAPFactory.newInstance();
String nameSpace =
"ns";
String nameSpaceURI =
"http://gizmos.com/NSURI";
QName order = new QName(nameSpaceURI,
"orderDesk", nameSpace);
SOAPHeaderElement orderHeader = header.addHeaderElement(order);
orderHeader.setActor(
"http://gizmos.com/orders");
QName shipping = new QName(nameSpaceURI,
"shippingDesk", nameSpace);
SOAPHeaderElement shippingHeader = header.addHeaderElement(shipping);
shippingHeader.setActor(
"http://gizmos.com/shipping");
QName confirmation = new QName(nameSpaceURI,
"confirmationDesk", nameSpace);
SOAPHeaderElement confirmationHeader = header.addHeaderElement(confirmation);
confirmationHeader.setActor(
"http://gizmos.com/confirmations");
QName billing = new QName(nameSpaceURI,
"billingDesk", nameSpace);
SOAPHeaderElement billingHeader = header.addHeaderElement(billing);
billingHeader.setActor(
"http://gizmos.com/billing");
The SOAPHeader interface provides two methods that return a java.util.Iterator object over
all the SOAPHeaderElement objects that have an actor that matches the specified actor. The first
method, examineHeaderElements, returns an iterator over all the elements that have the
specified actor.
java.util.Iterator headerElements =
header.examineHeaderElements(
"http://gizmos.com/orders");
The second method, extractHeaderElements, not only returns an iterator over all the
SOAPHeaderElement
objects that have the specified actor attribute but also detaches them from
the SOAPHeader object. So, for example, after the order desk application did its work, it would
call extractHeaderElements to remove all the SOAPHeaderElement objects that applied to it.
java.util.Iterator headerElements =
header.extractHeaderElements(
"http://gizmos.com/orders");
Each SOAPHeaderElement object can have only one actor attribute, but the same actor can be an
attribute for multiple SOAPHeaderElement objects.
SAAJ Tutorial
The Java EE 5 Tutorial · September 2007
606