WSIFServiceFactory factory = WSIFServiceFactory.newInstance();
WSIFService service = factory.getService(WSDLUtil.wsdlDefinitions5ToWsdlDefintions3(definitions));
WSIFClient client = WSIFRuntime.getDefault().newClientFor(service, null);
WSIFPort port = client.getPort();
WSIFOperation operation = port.createOperation(operationName);
WSIFMessage inputMessage = operation.createInputMessage();
for (String key : inputMap.keySet()) {
String value = inputMap.get(key);
inputMessage.setObjectPart(key, value);
}
URI myWorkflowID = null;
URI myServiceID = URI.create(XBayaConstants.APPLICATION_SHORT_NAME);
String myNodeID = null;
Integer myTimestep = null;
InvocationEntity myEntity = notifier.createEntity(myWorkflowID, myServiceID, myNodeID, myTimestep);
URI serviceWorkflowID = null;
URI serviceServiceID = URI.create("ServiceID");
String serviceNodeID = nodeID;
Integer serviceTimestep = null;
InvocationEntity serviceEntity = notifier.createEntity(serviceWorkflowID, serviceServiceID, serviceNodeID,
serviceTimestep);
WorkflowTrackingContext workflowContext = notifier.createTrackingContext(new Properties(), this.configuration
.getBrokerURL().toASCIIString(), myWorkflowID, myServiceID, myNodeID, myTimestep);
XmlElement inputBody = (XmlElement) ((XmlElement) inputMessage).getParent();
XmlObject inputBodyObject = XBeansUtil.xmlElementToXmlObject(inputBody);
InvocationContext context = notifier.invokingService(workflowContext, serviceEntity, null, inputBodyObject);
if (outputMap != null) {
WSIFMessage outputMessage = operation.createOutputMessage();
Soap11Util.getInstance().wrapBodyContent((XmlElement) outputMessage);
for (String key : outputMap.keySet()) {
String value = outputMap.get(key);
outputMessage.setObjectPart(key, value);
}