(String observer, ProcessData result)
throws SOAPException, RemoteException {
MessageFactory messageFactory = MessageFactory.newInstance();
SOAPMessage message = messageFactory.createMessage();
SOAPEnvelope env = message.getSOAPPart().getEnvelope();
SOAPHeader header = env.getHeader ();
SOAPHeaderElement req = header.addHeaderElement
(env.createName("Request", "as", Consts.ASAP_NS));
SOAPElement receiverKey
= req.addChildElement("ReceiverKey", Consts.ASAP_PREFIX);
receiverKey.addTextNode(observer);
SOAPElement senderKey = req.addChildElement("SenderKey",
Consts.ASAP_PREFIX);
senderKey.addTextNode(getResourceReference().getResourceKey());
SOAPElement responseRequired = req.addChildElement("ResponseRequired",
Consts.ASAP_PREFIX);
responseRequired.addTextNode("No");
SOAPBody body = env.getBody();
Name respName = env.createName(Consts.COMPLETED_REQUEST,
Consts.ASAP_PREFIX, Consts.ASAP_NS);
SOAPBodyElement action = body.addBodyElement(respName);
appendResultData(message, result, action);