log.debug("Invocation pattern: two way, sync");
}
initialize(mc);
OperationDescription operationDesc = Utils.getOperationDescription(mc);
Object[] methodInputParams = createRequestParameters(mc);
Method target = getJavaMethod(mc, serviceImplClass);
if (log.isDebugEnabled()) {
// At this point, the OpDesc includes everything we know, including the actual method
// on the service impl we will delegate to; it was set by getJavaMethod(...) above.
log.debug("JavaBeanDispatcher about to invoke using OperationDesc: " +
operationDesc.toString());
}
// We have the method that is going to be invoked and the parameter data to invoke it
// with, so just invoke the operation.
boolean faultThrown = false;
Throwable fault = null;
Object output = null;
try {
output = invokeTargetOperation(target, methodInputParams);
}
catch (Throwable e) {
faultThrown = true;
fault = e;
}
MessageContext response = null;
if (operationDesc.isOneWay()) {
// If the operation is one-way, then we can just return null because
// we cannot create a MessageContext for one-way responses.
return null;
} else if (faultThrown) {
response = createFaultResponse(mc, mc.getMessage().getProtocol(), fault);