// Axis2 operationClients can not be shared so create a new one for each request
final OperationClient operationClient = serviceClient.getServiceClient().createClient(wsdlOperationName);
operationClient.setOptions(options);
ReferenceParameters parameters = msg.getFrom().getReferenceParameters();
// set callback endpoint and callback ID for WS-Addressing header
EndpointReference fromEPR = null;
org.apache.tuscany.sca.runtime.EndpointReference callbackEPR = parameters.getCallbackReference();
if (callbackEPR != null) {
fromEPR = new EndpointReference(callbackEPR.getBinding().getURI());
}
Object callbackID = parameters.getCallbackID();
if (callbackID != null) {
if (fromEPR == null) {
fromEPR = new EndpointReference(AddressingConstants.Final.WSA_ANONYMOUS_URL);
}
//FIXME: serialize callback ID to XML in case it is not a string
fromEPR.addReferenceParameter(CALLBACK_ID_REFPARM_QN, callbackID.toString());
}
// set conversation ID for WS-Addressing header
Object conversationId = parameters.getConversationID();
if (conversationId != null) {
if (fromEPR == null) {
fromEPR = new EndpointReference(AddressingConstants.Final.WSA_ANONYMOUS_URL);
}
//FIXME: serialize conversation ID to XML in case it is not a string