java.lang.reflect.InvocationTargetException 报错问题怎么解决

在这里请问以下大神java.lang.reflect.InvocationTargetException 报错问题怎么解决 代码都是边听课边敲代码的,突然发现工具类报错,自己蒙蔽搞了一天,重开一个工程还是这样子

连接数据库是没问题的,就是提交表单的内容可以打印出来,但是没有传到服务器。主要原因是什么呢,

报错内容

java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at cn.itcast.test.web.base.BaseServlet.service(BaseServlet.java:31)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at cn.itcast.test.web.filter.EncodingFilter.doFilter(EncodingFilter.java:36)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at org.apache.coyote.AbstractProtocolA b s t r a c t C o n n e c t i o n H a n d l e r . p r o c e s s ( A b s t r a c t P r o t o c o l . j a v a : 607 ) a t o r g . a p a c h e . t o m c a t . u t i l . n e t . J I o E n d p o i n t AbstractConnectionHandler.process(AbstractProtocol.java:607) at org.apache.tomcat.util.net.JIoEndpointAbstractConnectionHandler.process(AbstractProtocol.java:607)atorg.apache.tomcat.util.net.JIoEndpointSocketProcessor.run(JIoEndpoint.java:315)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoClassDefFoundError: org/apache/commons/beanutils/Converter
at cn.itcast.test.web.servlet.UserServlet.userRegist(UserServlet.java:37)
… 28 more
Caused by: java.lang.ClassNotFoundException: org.apache.commons.beanutils.Converter
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1718)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1569)
… 29 more

自己类UserServlet 继承baseServlet类的源码

package cn.itcast.test.web.servlet;

import java.io.IOException;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import javax.jws.soap.SOAPBinding.Use;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.itcast.test.daomain.User;
import cn.itcast.test.service.UserService;
import cn.itcast.test.service.serviceImp.UserServiceImp;
import cn.itcast.test.utils.MyBeanUtils;
import cn.itcast.test.utils.UUIDUtils;
import cn.itcast.test.web.base.BaseServlet;

public class UserServlet extends BaseServlet {

public String registUI(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
	return "/jsp/register.jsp";
}
public String userRegist(HttpServletRequest request, HttpServletResponse response) throws Exception {

// 要处理的事务

// 1,接收表单参数
Map<String, String[]> map= request.getParameterMap();
User user = new User();
System.out.println(“user”);
//接收数据+转换日期

在这里出现错误跳转。前面的打印是可以正常打印user,直接提交表单后然后就直接报错

	MyBeanUtils.populate( user,map);
	
	
	
	
	
	user.setUid(UUIDUtils.getId());
	user.setState(0);
	user.setCode(UUIDUtils.getId());
	
	
	
	
	
	
	//2,调用业务层注册功能
	UserService UserService = new UserServiceImp();
	try {
		UserService.userRegist(user);
		//注册成功,向用户邮箱发送信息,跳转到提示页面
		//		3,注册成功,向用户邮箱发送信息,跳转页面
		request.setAttribute("msg", "用户注册成功,欢迎来到我的世界");
		//		4,注册失败
	} catch (Exception e) {

// 4,注册失败
request.setAttribute(“msg”, “用户注册失败,请重新登陆”);
}

	return "/jsp/info.jsp";
}

}

BaseServlet 类

package cn.itcast.test.web.base;

import java.io.IOException;
import java.lang.reflect.Method;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class BaseServlet extends HttpServlet {
@Override
public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

	// localhost:8080/store/productServlet?method=addProduct
	String method = req.getParameter("method");

	if (null == method || "".equals(method) || method.trim().equals("")) {
		method = "execute";
	}

	// 注意:此处的this代表的是子类的对象
	// System.out.println(this);
	// 子类对象字节码对象
	Class clazz = this.getClass();

	try {
		// 查找子类对象对应的字节码中的名称为method的方法.这个方法的参数类型是:HttpServletRequest.class,HttpServletResponse.class
		Method md = clazz.getMethod(method, HttpServletRequest.class, HttpServletResponse.class);
		if(null!=md){
			String jspPath = (String) md.invoke(this, req, resp);
			if (null != jspPath) {
				req.getRequestDispatcher(jspPath).forward(req, resp);
			}
		}
	} catch (Exception e) {
	
		e.printStackTrace();
	}

执行完前面后 出现在这里, 报错的地方

}

// 默认方法
public String execute(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
	return null;
}

}


版权声明:本文为DGB305020原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。