关于JAVA反射中调用注入bean执行报InvocationTargetException错误

最近在弄东西时,发现反射执行的方法一直在报错 InvocationTargetException ,找了半天以为是被调用的方法出的错,最后发现是由于执行的方法中,注入了bean,但是反射执行时,无法找到,所以造成错误, 所以在调用spring注入的方法中,一定要通过容器将bean获取到,再执行,否则用创建实例的方法会报错,在此记录一下,其中加粗的部分实现通过beanid得到容器中的bean。


public void invo(WfDspsx wf) {

WfYwpz wfYwpz = this.getWfywpz(wf.getYwdm());

String beanid = wfYwpz.getBeanid();
String methodName = wfYwpz.getMethodname();

try {
Object beanObject = BeanUtil.getBean(beanid);
Method endWfMethod = beanObject.getClass().getDeclaredMethod(methodName,WfDspsx.class);
Object result=endWfMethod.invoke(beanObject,wf);


} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
}

}

你可能感兴趣的:(关于JAVA反射中调用注入bean执行报InvocationTargetException错误)