maven工具使用json-lib时,JSONArray.fromObject()不能执行的解决方案

Posted wzhsun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven工具使用json-lib时,JSONArray.fromObject()不能执行的解决方案相关的知识,希望对你有一定的参考价值。

  1. 前端代码我就不展示了 ,下面说明下我遇到问题的情况,如果不想看可以直接划到黄色字体部分直接找解决方法哦~~(相关jar包我会放在云中,想要的自己下载哦,链接在视频最下面!!)
  2. 我的pom文件,如下,导入json-lib请注意添加 <classifier>jdk15</classifier>这个属性,json-lib支持jdk1.3,jdk1.5,要不然不会添加json-lib包
<dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>
        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
            <classifier>jdk15</classifier>
        </dependency>

servlet的方法,我的小demo主要是写一个类似于百度的那个搜索框

@Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        //首先获得客户端发送过来的关键字keyword
        String keyword = request.getParameter("keyword");
        //获得关键字后进行处理得到关联数据
        List<String> listData = getDate(keyword);
        //返回json格式
        JSONArray jsonArray = JSONArray.fromObject(listData);
        System.out.println(jsonArray);
        System.out.println(jsonArray.getClass());
    }

 

项目是tomcat容器启动,当我启动后,没有出现代码报错提示,正常启动,只是当我访问url时,本应该打印出listData数据出来,结果没有打印,我点击下面这张图红色箭头指向,查看tomcat的日志,发现报了错,我就不贴图了,错误提示一般是

严重 [http-nio-8080-exec-4] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [search] in context with path [] threw exception [Servlet execution threw an exception] with root cause

java.lang.ClassNotFoundException:*********         没有找到类的错误,一般是因为没有引入jar所导致的。

技术图片

 

下面这张图是我在json-lib官方网站看到的,说是必须要这面的这些包文件,而用maven引入json-lib2.4版本所有的包就都会有,也就是说我项目中是有这些包文件的。记得上面我那些报错信息是在tomcat中提示的,难道我tomcat出了问题,经过我多方面查找,问题找到了。

技术图片

问题的确出在了tomcat上面,通常我们运行web项目,必须需要一个服务容器,那个容器有很多种,而我使用的是tomcat,我们必须把项目打成war包并上传到tomcat的webapps目录中,通过配置tomcat的conf目录下面的server.xml文件制定项目的目录节点,开启tomcat服务,然后才能访问项目。而我们项目运行时,jar文件本应该在war包的/WEB-INF/lib目录下,找不到还会去tomcat容器的lib目录下。最有可能是因为运行项目时,jar文件并没有部署进去(我也是猜的,毕竟小白一枚)

 

解决方法:找到本机的tomcat服务器,进入lib目录将项目用到的关于json的 6 个jar包文件拖进lib目录下,分别是commons-lang-2.5 ,commons-collections-3.2.1,ezmorph-1.0.6,commons-beanutils-1.8.0,json-lib-2.4-jdk15,commons-logging-1.1.1,

将这些文件拖进lib目录下,重新运行项目,请求servlet,成功返回json类性的数据

技术图片

成功返回

技术图片

 

ps:本人第一次写这种博客,文字可能有点不流畅或者墨迹或者中心表达不够明确,请各位大哥大神见谅,写这个的原因主要是这个问题困扰我一整天,网上找了半天也没有找到,所及当我自己解决后就想到写这个了,本来想写笔记来着,但是自上次一不小心删掉全部笔记后痛心了我好久,而且笔记我做了也自己一个人看,还不如下博客。所以,以后我碰到了一些难解的问题还是会继续写的(虽然写的不好),谢谢各位观看!!加油!!!!!!!!!

 

链接:https://pan.baidu.com/s/1JBqW5y7wRYmk-s2-XfBZFw
提取码:gbt7

以上是关于maven工具使用json-lib时,JSONArray.fromObject()不能执行的解决方案的主要内容,如果未能解决你的问题,请参考以下文章

如何在maven中要引入json包

json-lib maven依赖出错的问题

json-lib使用maven找不到jar的解决方法

maven中json-lib库无法引入

问题:Maven: missing net.sf.json-lib

maven引用net.sf.json-lib