use of xsul.wsif.WSIFMessage in project airavata by apache.
the class SimpleWSClient method sendSOAPMessage.
/**
* @param wclient
* @param args
* @param opName
* @return The output
* @throws ComponentRegistryException
*/
public WSIFMessage sendSOAPMessage(WSIFClient wclient, Object[][] args, String opName) throws ComponentRegistryException {
WSIFPort port = wclient.getPort();
WSIFOperation operation = port.createOperation(opName);
WSIFMessage outputMessage = operation.createOutputMessage();
WSIFMessage faultMessage = operation.createFaultMessage();
String messageName = operation.createInputMessage().getName();
XmlElement inputMsgElem = builder.newFragment(this.requestNS, messageName);
for (int i = 0; i < args.length; i++) {
createMessage((String) args[i][0], args[i][1], inputMsgElem);
}
WSIFMessageElement inputMessage = new WSIFMessageElement(inputMsgElem);
boolean success = operation.executeRequestResponseOperation(inputMessage, outputMessage, faultMessage);
if (success) {
logger.debug("" + outputMessage);
return outputMessage;
} else {
throw new ComponentRegistryException("Excpetion at server " + faultMessage);
}
}
use of xsul.wsif.WSIFMessage in project airavata by apache.
the class GFacServiceCreator method createService.
/**
* @param serviceQName
* @return The WSDL definitions of the service created.
* @throws WorkflowException
*/
public WsdlDefinitions createService(String serviceQName) throws WorkflowException {
logger.debug(serviceQName);
try {
WSIFMessage inputMessage = this.gFacOperation.createInputMessage();
WSIFMessage outputMessage = this.gFacOperation.createOutputMessage();
WSIFMessage faultMessage = this.gFacOperation.createFaultMessage();
inputMessage.setObjectPart(SERVICE_QNAME_PART, serviceQName);
inputMessage.setObjectPart(SECURITY_PART, SECURITY_NONE);
logger.debug("inputMessage: " + inputMessage);
boolean success = this.gFacOperation.executeRequestResponseOperation(inputMessage, outputMessage, faultMessage);
if (!success) {
// An implementation of WSIFMessage, WSIFMessageElement,
// implements toString(), which serialize the message XML.
String message = "Failed to create a service: " + faultMessage.toString();
throw new WorkflowException(message);
}
String wsdl = (String) outputMessage.getObjectPart(WSDL_PART);
logger.debug("WSDL: " + wsdl);
XmlElement definitionsElement = XMLUtil.stringToXmlElement3(wsdl);
this.serviceDefinitions = new WsdlDefinitions(definitionsElement);
return this.serviceDefinitions;
} catch (RuntimeException e) {
String message = "Failed to create a service";
throw new WorkflowException(message, e);
}
}
use of xsul.wsif.WSIFMessage in project airavata by apache.
the class GFacServiceCreator method shutdownService.
/**
* Shutdowns the service created.
*
* @throws WorkflowException
*/
public void shutdownService() throws WorkflowException {
WSIFService service = WSIFServiceFactory.newInstance().getService(this.serviceDefinitions);
WSIFPort port = service.getPort();
WSIFOperation operation = port.createOperation(SHUTDOWN_OPERATION);
WSIFMessage inputMessage = operation.createInputMessage();
WSIFMessage outputMessage = operation.createOutputMessage();
WSIFMessage faultMessage = operation.createFaultMessage();
boolean success = operation.executeRequestResponseOperation(inputMessage, outputMessage, faultMessage);
if (!success) {
// An implementation of WSIFMessage, WSIFMessageElement,
// implements toString(), which serialize the message XML.
String message = "Failed to shutdown the service: " + faultMessage.toString();
throw new WorkflowException(message);
}
}
Aggregations