public static EnvelopeDocument wrapToSoapEnvelope(XmlObject bodyContent, String action) { EnvelopeDocument envelopeDoc = EnvelopeDocument.Factory.newInstance(); Envelope envelope = envelopeDoc.addNewEnvelope(); Header header = envelope.addNewHeader(); XmlCursor cur = header.newCursor(); cur.toFirstContentToken(); cur.insertElementWithText(new QName(ns_addressing,"To","wsa"),"http://www.ogc.org/SOS"); cur.insertElementWithText(new QName(ns_addressing,"Action","wsa"), action); cur.insertElementWithText(new QName(ns_addressing,"MessageID","wsa"), UUID.randomUUID().toString()); // cur.beginElement(new QName(ns_addressing,"From","wsa")); // cur.insertElementWithText(new QName(ns_addressing,"Address","wsa"), // "http://www.w3.org/2005/08/addressing/role/anonymous"); cur.dispose(); Body body = envelope.addNewBody(); body.set(bodyContent); XmlCursor cursor = envelopeDoc.newCursor(); if (cursor.toFirstChild()) { cursor.setAttributeText(new QName("http://www.w3.org/2001/XMLSchema-instance","schemaLocation"), "http://www.w3.org/2003/05/soap-envelope http://www.w3.org/2003/05/soap-envelope/soap-envelope.xsd http://www.opengis.net/sos/2.0 http://schemas.opengis.net/sos/2.0/sos.xsd"); } return envelopeDoc; }
cur = header.newCursor(); cur.toFirstContentToken(); cur.beginElement(new QName("http://www.w3.org/2005/08/addressing","To","wsa"));
@Deprecated public String buildUnsubscribeRequestLegacy(ParameterContainer parameters){ EnvelopeDocument request = aSesRequest() .addSoapAction(SOAP_ACTION_DESTROY_REQUEST) .addRecipient(getStringValueFor(UNSUBSCRIBE_SES_URL, parameters)) .addFrom(getFromAddress(W3C_ADDRESSING_ROLE_ANONYMOUS, parameters)) .addMessageId() .build(); Header soapHeader = request.getEnvelope().getHeader(); XmlCursor headerXmlCursor = soapHeader.newCursor(); headerXmlCursor.toLastChild(); headerXmlCursor.beginElement(new QName(N52_SES_RESOURCE_ID_NAMESPACE, "ResourceId", "muse-wsa")); headerXmlCursor.insertAttributeWithValue(WSA.createQNameFor("IsReferenceParameter"), "true"); headerXmlCursor.insertChars(getStringValueFor(UNSUBSCRIBE_REFERENCE, parameters)); headerXmlCursor.dispose(); XmlObject body = request.getEnvelope().getBody(); XmlCursor xmlBodyCursor = body.newCursor(); xmlBodyCursor = body.newCursor(); xmlBodyCursor.toFirstContentToken(); xmlBodyCursor.beginElement(WSN_B.createQNameFor("Destroy")); xmlBodyCursor.dispose(); return request.xmlText(); }
@Override public String buildDestroyRegistrationRequest( ParameterContainer parameters) throws OXFException { EnvelopeDocument request = aSesRequest() .addSoapAction(SOAP_ACTION_DESTROY_REGISTRATION_REQUEST) .addRecipient(getStringValueFor(DESTROY_REGISTRATION_SES_URL, parameters)) .addFrom(getFromAddress(W3C_ADDRESSING_ROLE_ANONYMOUS, parameters)) .addMessageId() .build(); Header soapHeader = request.getEnvelope().getHeader(); XmlCursor headerXmlCursor = soapHeader.newCursor(); headerXmlCursor.toLastChild(); String resourceId = getStringValueFor(DESTROY_REGISTRATION_REFERENCE, parameters); if (resourceId != null) { headerXmlCursor.beginElement(new QName(N52_SES_RESOURCE_ID_NAMESPACE, "ResourceId", "muse-wsa")); headerXmlCursor.insertAttributeWithValue(WSA.createQNameFor("IsReferenceParameter"), "true"); headerXmlCursor.insertChars(resourceId); } headerXmlCursor.dispose(); XmlObject body = request.getEnvelope().getBody(); DestroyRegistrationDocument destroyDoc = DestroyRegistrationDocument.Factory.newInstance(); destroyDoc.addNewDestroyRegistration(); body.set(destroyDoc); return request.xmlText(new XmlOptions().setSavePrettyPrint()); }
XmlCursor headerXmlCursor = soapHeader.newCursor(); headerXmlCursor.toLastChild();