cursor.beginElement(WSRM_LAST_MSG, wsrmNamespace);
cursor.insertChars(String.valueOf(lastMsgNum));
cursor.dispose();
WsaUtils wsaUtils = new WsaUtils(object.xmlText(), soapVersion, null, new DefaultPropertyExpansionContext(
closeSequenceRequest));
content = wsaUtils.addWSAddressingRequest(closeSequenceRequest);
closeSequenceRequest.setRequestContent(content);
Logger.getLogger("wsrm").info("CloseSequence Request Sent for Sequence: " + identifier);
} catch (XmlException e) {
SoapUI.logError(e);
}
try {
WsdlSubmit wsdlSubmit = closeSequenceRequest.submit(new WsdlSubmitContext(null), true);
while (wsdlSubmit.getStatus() != Status.FINISHED) {
wsdlSubmit.waitUntilFinished();
}
Response response = wsdlSubmit.getResponse();
String responseContent = response.getContentAsString();
// XmlObject xml = XmlObject.Factory.parse( responseContent );
XmlObject xml = XmlUtils.createXmlObject(responseContent);
XmlOptions options = new XmlOptions();
String namespaceDeclaration = "declare namespace wsrm='" + wsrmNamespace + "';";
XmlObject result[] = xml.selectPath(namespaceDeclaration + "//wsrm:AcknowledgementRange", options);
if (result.length > 0) {
for (XmlObject aResult : result) {
String upper = aResult.selectAttribute(null, "Upper").getDomNode().getNodeValue();
String lower = aResult.selectAttribute(null, "Lower").getDomNode().getNodeValue();
if (lower.equals(upper)) {
Logger.getLogger("wsrm").info(
"Acknowledgment for message " + upper + " received for identifier: " + identifier);
} else {
Logger.getLogger("wsrm").info(
"Acknowledgment for messages " + lower + " to " + upper + " received for identifier: "
+ identifier);
}
}
} else {
Logger.getLogger("wsrm").info("No Acknowledgments received for identifier: " + identifier);
}
} catch (SubmitException e1) {
SoapUI.logError(e1);
} catch (XmlException e) {
SoapUI.logError(e);
}
}
// The Terminate Sequence Message
WsaRequest terminateSequenceRequest = new WsaRequest(httpRequestConfig, wsaConfig, wsrmConfig, false);
terminateSequenceRequest.setOperation(operation);
String terminateSequenceRequestContent = SoapMessageBuilder.buildEmptyMessage(soapVersion);
terminateSequenceRequest.getWsaConfig().setWsaEnabled(true);
terminateSequenceRequest.getWsaConfig().setAction(wsrmNamespace + WSRM_TERMINATE_SEQUENCE_ACTION);
terminateSequenceRequest.getWsaConfig().setTo(endpoint);
terminateSequenceRequest.getWsaConfig().setGenerateMessageId(true);
try {
// XmlObject object = XmlObject.Factory.parse(
// terminateSequenceRequestContent );
XmlObject object = XmlUtils.createXmlObject(terminateSequenceRequestContent);
XmlCursor cursor = object.newCursor();
cursor.toFirstContentToken();
cursor.toFirstChild();
cursor.toNextSibling();
cursor.toNextToken();
cursor.insertNamespace("wsrm", wsrmNamespace);
cursor.beginElement("TerminateSequence", wsrmNamespace);
cursor.beginElement(WSRM_IDENTIFIER, wsrmNamespace);
cursor.insertChars(identifier);
cursor.dispose();
// startSequenceRequest.getOperation().setAction("");
// startSequenceRequest.setRequestContent(object.xmlText());
WsaUtils wsaUtils = new WsaUtils(object.xmlText(), soapVersion, null, new DefaultPropertyExpansionContext(
terminateSequenceRequest));
terminateSequenceRequestContent = wsaUtils.addWSAddressingRequest(terminateSequenceRequest);
terminateSequenceRequest.setRequestContent(terminateSequenceRequestContent);