java 类的放射-方法

/**
* Invoke Proxy method, dispatch request to specific operation 

* @param transactionAction  //类对象
* @param serviceRequest   //参数
* @return  ServiceResponse //返回参数
* @throws BusinessServiceException
*/
public static ServiceResponse executeOperation(Object transactionAction,
ServiceRequest serviceRequest) throws BusinessServiceException {
String operation = (String) serviceRequest.getParameter(CommonConstant.OPERA_TYPE_KEY);
if (StringUtils.isEmpty(operation)) {
throw new BusinessServiceException(
"No operation type set for transaction action");
}


if (transactionAction == null) {
throw new BusinessServiceException(
"Transaction Action object to execute is null");
}


try {
Method method = transactionAction.getClass().getMethod(operation, new Class[] { serviceRequest.getClass() });
Object result = method.invoke(transactionAction, new Object[] { serviceRequest });
if (result instanceof ServiceResponse) {
return (ServiceResponse) result;
}
} catch (InvocationTargetException e) {
Throwable target = e.getTargetException();
throw (target instanceof BusinessServiceException) ? (BusinessServiceException) target
: new BusinessServiceException(e.getMessage(), e);
} catch (Exception e) {
throw new BusinessServiceException(e.getMessage(), e);
}
return null;

}



-------------------调用----------------------

public ServiceResponse perform(ServiceRequest serviceRequest)
throws BusinessServiceException {
return ControllerServiceUtilities.executeOperation(this, serviceRequest);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值