protected Object invokeService(Message requestJMSMsg) throws JMSException, InvocationTargetException {
String operationName = requestMessageProcessor.getOperationName(requestJMSMsg);
Operation operation = getTargetOperation(operationName);
MessageImpl tuscanyMsg = new MessageImpl();
tuscanyMsg.setOperation(operation);
if ("onMessage".equals(operation.getName())) {
tuscanyMsg.setBody(new Object[]{requestJMSMsg});
} else {
Object requestPayload = requestMessageProcessor.extractPayloadFromJMSMessage(requestJMSMsg);
tuscanyMsg.setBody(requestPayload);
}
setHeaderProperties(requestJMSMsg, tuscanyMsg, operation);
return service.getRuntimeWire(targetBinding).invoke(operation, tuscanyMsg);