码迷,mamicode.com
首页 > Web开发 > 详细

使用JSON数据报错和方法

时间:2016-12-19 11:40:55      阅读:431      评论:0      收藏:0      [点我收藏+]

标签:避免   dia   exce   name   property   adapter   back   2.3   apt   

   今天自己写了一个JSON的例子,可以一调用就出了问题,报下面这个异常:

Java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException

上网上搜了一下才知道原来在使用JSON的使用的时候,不光要导入JSON这个包,同时还要导入另外三个包

总之,共需要下面的 jars,json-lib方可使用:

commons-beanutils-1.7.0.jar 

commons-lang-2.1.jar 

ezmorph-1.0.2.jar 

json-lib-1.1-jdk15.jar

 

但是又出现如下问题:

java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory

导入commons-logging-1.1.1.jar

 

又出现如下问题:

java.lang.NoClassDefFoundError: Could not initialize class net.sf.json.JSONArray

导入commons-collections 3.2

Ok

使用json常用到的包有以下六个。

[c-sharp] view plaincopy
 
  1. commons-logging-1.0.4.jar  
  2. commons-lang-2.3.jar  
  3. commons-collections-3.2.jar  
  4. commons-beanutils-1.7.0.jar  
  5. json-lib-2.2.1-jdk15.jar  
  6. ezmorph-1.0.4.jar  

 

另外如果commons-collections-3.2.jar没有或版本不对的话会出现

org/apache/commons/collections/map/ListOrderedMap这个异常。

 
1、确保导入了jackson-core-asl-1.9.13.jar和jackson-mapper-asl-1.9.13.jar包
2、在spring的配置文件中加入<mvc:annotation-driven />这句,它提供了读取jason的支持
3、使用springMVC的@ResponseBody注解@responsebody表示该方法的返回结果直接写入HTTP response body中
一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据。
4、在以上配置都正确的情况下,我的项目还是不能返回json串。报错:The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers ()。
今天终于在一个外文网站找到答案,是由于spring版本的问题引起的。我之前一直用的是3.0.0的版本。就是因为这个版本的问题。于是果断去官网下载3.2版本的,一切正常运行,成功返回json数据。
 
 
spring mvc 避免IE执行AJAX时,返回JSON出现下载文件

<!-- 避免IE执行AJAX时,返回JSON出现下载文件 -->

<bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">

<property name="supportedMediaTypes">

<list>

<value>text/html;charset=UTF-8</value>

</list>

</property>

</bean>

 

<!-- 启动spring MVC的注解功能,完成请求和注解POJO的映射 -->

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">

<property name="messageConverters">

<list>

<ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 -->

</list>

</property>

</bean>

 

去掉 <mvc:annotation-driven/>

 

使用JSON数据报错和方法

标签:避免   dia   exce   name   property   adapter   back   2.3   apt   

原文地址:http://www.cnblogs.com/gaofz/p/6196523.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!