throws InvocationTargetException {
// FIXME: How to deal with other scopes
Object contextId = ThreadMessageContext.getMessageContext().getConversationID();
try {
InstanceWrapper wrapper = getInstance(sequence, contextId);
Object instance = wrapper.getInstance();
Object ret;
if (payload != null && !payload.getClass().isArray()) {
ret = operation.invoke(instance, payload);
} else {
ret = operation.invoke(instance, (Object[])payload);