12:14:55,703 INFO  [Reflect] 动态调用类:com.union.water.baseInfo.Qushui.QushuiHelper,方法:toExl
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.union.util.Reflect.DynamicInvoke(Reflect.java:139)
at com.union.app.AppAction.DynamicInvoke(AppAction.java:333)
at com.union.app.AppAction.execute(AppAction.java:274)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at com.union.water.sysManager.SecurityFilter.doFilter(SecurityFilter.java:211)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

解决方案 »

  1.   

    setRegionInfo(methodName, dt);
                cls = Class.forName(subClassName);
                partypes[0] = DataTran.class;
                partypes[1] = DynaActionForm.class;
                partypes[2] = HttpServletRequest.class;
                partypes[3] = HttpServletResponse.class;
            } catch (ClassNotFoundException ce) {
                dt.bError = true;
                dt.sMessage = "helper类:" + subClassName + "不存在或初始化错误!";
                System.out.println(dt.sMessage);
                return null;
            }
            
            try {
                meth = cls.getMethod(methodName, partypes);
            } catch (NoSuchMethodException ne) {
                dt.bError = true;
                dt.sMessage = "错误:类" + subClassName + "中不存在方法" + methodName +
                        ",请检查action.xml中的设置!";
    //            System.out.println(dt.sMessage);
                log.error(dt.sMessage);
                return null;
            }
            
            try {
                Helper methobj = this.getHelper(subClassName);
                Object arglist[] = new Object[4];
                arglist[0] = dt;
                arglist[1] = listForm;
                arglist[2] = request;
                arglist[3] = response;
                Object retobj = meth.invoke(methobj, arglist);
                return (DataTranVo) retobj;
            } catch (IllegalAccessException e) {
                throw new Exception("类" + subClassName + "或方法" + methodName + "非法调用错误!" +
                        e.getMessage());
            } catch (IllegalArgumentException e) {
                throw new Exception("类" + subClassName + "的方法" + methodName +
                        "调用参数错误或非法!" + e.getMessage());
            } catch (InvocationTargetException e) {
                e.printStackTrace();这样调用没 有问题啊,一执行就报那个底层方法调用的错误