在idea中出现java.lang.ClassNotFoundException
一、java.lang.ClassNotFoundException常见的场景就是:1 调用class的forName方法时,找不到指定的类2 ClassLoader 中的 findSystemClass() 方法时,找不到指定的类3 ClassLoader 中的 loadClass() 方法时,找不到指定的类package serve;import servlet.Servlet;import
·
一、java.lang.ClassNotFoundException
常见的场景就是:
1 调用class的forName方法时,找不到指定的类
2 ClassLoader 中的 findSystemClass() 方法时,找不到指定的类
3 ClassLoader 中的 loadClass() 方法时,找不到指定的类
package serve;
import servlet.Servlet;
import java.util.List;
import java.util.Map;
/**
* @Author:@Author
*/
public class WebApp { //就是一个app
private static ServletContext context;
static{
context=new ServletContext();
//分别获取对应关系的Map集合
Map<String,String> servlet=context.getServlet();
Map<String,String> mapping=context.getMapping();
//创建解析XML文件的对象
Dom4j dom=new Dom4j();
dom.parse(dom.getDocument()); //解析XML文件
//创建解析XML文件之后的List集合
List<Entity> entityList=dom.getEntityList();
List<Mapping> mappingList=dom.getMappingList();
//将List集合中的数据存储到Map集合当中
for(Entity entity:entityList){
servlet.put(entity.getName(),entity.getClazz());
}
// System.out.println(servlet);
for (Mapping map:mappingList){
//遍历urlPattern的集合
List<String> urlPattern=map.getUrlPatter();
for (String s:urlPattern){
mapping.put(s,map.getName());
}
}
//System.out.println(mapping);
}
/**
* 根据url会创建不同的servlet对象
* @param
*/
public static Servlet getServlet(String url){
if(url==null||url.trim().equals("")){
return null;
}
try {
//url正确
//根据url的key获取servlet-name的值/log=login
String servletName=context.getMapping().get(url);
//根据servletName得到对应的servlet-class
String servletClass=context.getServlet().get(servletName);
//使用反射创建Servlet对象
Class clazz=Class.forName(servletClass);
//调用无参构造方法创建Servlet对象
Servlet servlet=(Servlet)clazz.newInstance();
return servlet;
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
System.out.println(getServlet("/log"));
}
}
用debug调试过后发现web.xml出现问题
希望自己下次不要再犯这样的错误了。
更多推荐
所有评论(0)