java.lang.NoClassDefFoundError: 一个关于jackson的jar问题..
问题出现的环境背景及自己尝试过哪些方法
java.lang.NoClassDefFoundError:com/fasterxml/jackson/databind/ObjectMapper
请问这个问题怎么解决呢??????/
我用debug,执行完就会出现这一句找不到class的异常,但是在导入的jar包里找得到这个ObjectMapper...
这个是相关jar
本来导入的是jackson-databind-2.2.3.jar ,一直网上搜问题,有说版本问题的,然后就换了,最后还是不行,都是这个异常### 问题描述
相关代码
package cn.wei.web.servlet;import com.fasterxml.jackson.databind.ObjectMapper;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class FindUserServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ObjectMapper mapper = new ObjectMapper();
System.out.println("ni shi tiancai ");
//1.获取用户名
String username = request.getParameter("username");
//2.调用service层判断用户名是否存在
//期望服务器响应回的数据格式:{"userExsit":true,"msg":"此用户名太受欢迎,请更换一个"}
// {"userExsit":false,"msg":"用户名可用"}
//设置响应的数据格式为json
response.setContentType("application/json;charset=utf-8");
Map<String,Object> jsons = new HashMap<>();
if("tom".equals(username)){
//存在
jsons.put("userExsit",true);
jsons.put("msg","此用户名太受欢迎,请更换一个");
}else{
//不存在
jsons.put("userExsit",false);
jsons.put("msg","用户名可用");
}
//并且传递给客户端
mapper.writeValue(response.getWriter(),jsons);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
}
你期待的结果是什么?实际看到的错误信息又是什么?
希望能运行成功..但是这个类不知道为什么找不到
回答:
你这里的 NoClassDefFoundError 异常时在类加载器在自己的加载目录下找不到 ObjectMapper 类才报出来的。
而你工程应该是一个 JavaWeb 项目吧,跑在 Tomcat 容器中的那种 war 包。
每个 web 应用都有自己的 WebappClassLoader 类加载器,它默认负责加载的路径是/WEB-INF/lib
和/WEB-INF/classes
目录中的类,所以你这里应该把 libs 改成 lib。
或者你可以去 tomcat 存放应用程序目录的 webapps 目录下面找到自己的这个项目,看看它里面包不包含 jackson 的依赖。
以上。
以上是 java.lang.NoClassDefFoundError: 一个关于jackson的jar问题.. 的全部内容, 来源链接: utcz.com/p/170335.html