package service; public interface IService { Object call(String serviceid, Object... params) throws Exception; }
package service; import java.lang.reflect.InvocationTargetException; import org.apache.commons.beanutils.MethodUtils; import org.apache.commons.lang.StringUtils; public class Service implements IService { public Object call(String serviceid, Object... params) { String className = StringUtils.substringBeforeLast(serviceid, "."); String methodName = StringUtils.substringAfterLast(serviceid, "."); Object ret = null; try { ClassLoader clsLoader = Thread.currentThread() .getContextClassLoader(); ret = MethodUtils.invokeMethod(clsLoader.loadClass(className) .newInstance(), methodName, params); } catch(ClassNotFoundException e1) { throw new RuntimeException("=====业务接口未定义====="); } catch(InstantiationException e1) { throw new RuntimeException(e1.getMessage()); } catch(IllegalAccessException e1) { throw new RuntimeException("=====非法访问业务接口====="); } catch(InvocationTargetException e1) { throw new RuntimeException(e1.getMessage()); } catch(NoSuchMethodException e1) { throw new RuntimeException("=====业务接口方法未定义====="); } return ret; } }