`
jerryzxm
  • 浏览: 49149 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

spring mvc json @ResponseBody 406 not acceptable jackson

阅读更多

  好吧,我承认,MyEclipse这东西是很好用,但是问题也多多。折腾了两小时spring libs之后,再加上jackson 1.8.0,一切正常。

  spring-framework-3.0.5 + jackson-1.8.0-all + n多spring依赖的jar

 

  以下内容仅供参考,是MyEclipse带的spring-3.0.1,然后加上自己下载的jackson lib。

  spring mvc很不错,就是json支持很折腾人,jquery getJSON请求返回406 not acceptable

  搜了半天,看了一堆文章帖子,各种网站都看过了,javaeye、csdn、blogjava、stackoverflow、eclipse.org、blog.springsource.org...  总结一下也就3个(2和3加进去错误依旧,3都没有必要添加)


1. 添加 jackson json lib  http://wiki.fasterxml.com/JacksonDownload

2. xml添加 <mvc:annotation-driven />

3. xml添加 org.springframework.http.converter.json.MappingJacksonHttpMessageConverter


  从jackson json网站上下了各版本的jar,加进去,报错找不到方法,从v1.7到v1.2不同版本的还都不一样:

org.codehaus.jackson.type.JavaType.init

org.codehaus.jackson.type.JavaType.isFullyTyped()

org.codehaus.jackson.map.MappingJsonFactory.setCodec()


  最后尝试1.0.1的,成功。jackson json这破玩意竟然不向前兼容,新版本里面去掉或者修改了一些个方法

 

web.xml

 

<!-- Handles all requests into the application -->
<servlet>
	<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	<init-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/spring-mvc-servlet.xml</param-value>
	</init-param>
	<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
	<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
	<url-pattern>*.htm</url-pattern>
</servlet-mapping>

 

spring-mvc-servlet.xml

 

<mvc:annotation-driven />

<context:component-scan base-package="demo.controller" />

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<property name="prefix" value="/WEB-INF/jsp"/>
	<property name="suffix" value=".jsp"/>
</bean>

 

UserController.java

 

@RequestMapping(value="/user/check_username_available")
public @ResponseBody boolean checkUsernameAvailable(@RequestParam String username){
	//TODO
	return false;
}

 

javascript

 

var params = {username: $("#username").val()};
var url = ctx + "/user/check_username_available.htm";
$.getJSON(url, params, function(json){
	console.log(json);
});
分享到:
评论
4 楼 Ydaxia 2012-07-17  
我的也是spring3.0版本,还好看了楼主的答案,最后换成了1.1版本的才搞掂

大恩不言谢啊...
3 楼 _myjava 2012-06-18  
    还是楼主厉害。搞了一天了 。为这个问题。晕啊 。
2 楼 iamdhj 2011-12-07  
为什么一开始说1.8后面又说1.0.1的?
我也到官网一个个版本下来试,没看过像jackson这么搞的。
不过问题好像是myeclipse的spring 3.0库用来1.0jackson库。
1 楼 macrotea 2011-09-23  
我也被搞死

相关推荐

    彻底根治Spring @ResponseBody JavaScript HTML特殊字符

    本篇文章将深入探讨这个问题,提供解决方案,并涉及Spring MVC、Jackson等相关技术。 首先,理解`@ResponseBody`的作用至关重要。它是Spring MVC中的一个注解,用于指示控制器方法的返回值应直接写入HTTP响应体,而...

    Spring MVC – Easy REST-Based JSON Services with @ResponseBody

    标题中的“Spring MVC – Easy REST-Based JSON Services with @ResponseBody”是指使用Spring MVC框架构建基于REST的JSON服务,并通过使用`@ResponseBody`注解来简化这一过程。REST(Representational State ...

    spring mvc json&&jackson jquery js

    Spring MVC中的`@ResponseBody`注解可以将方法的返回值直接转换为JSON格式发送到客户端,而`@RequestBody`则可以将请求体中的JSON数据解析成Java对象。 **Jackson** Jackson是Java中广泛使用的JSON库,它可以高效地...

    最新版本 jackson 2.8.2 jar与spring 4.x @ResponseBody配合使用

    标题提到的"最新版本 Jackson 2.8.2 jar与Spring 4.x @ResponseBody配合使用"涉及到的关键知识点包括Jackson的三个核心模块,以及如何在Spring MVC中利用这些模块实现RESTful API的数据响应。 1. **Jackson核心模块...

    Spring mvc Json处理实现流程代码实例

    总结,Spring MVC处理JSON数据的关键在于`@RequestBody`和`@ResponseBody`注解以及HttpMessageConverter。`@RequestBody`用于将JSON请求体映射到方法参数,`@ResponseBody`用于将方法返回值转换为JSON响应。通过集成...

    spring mvc(整合了json)

    2. **配置 Spring MVC**:在 Spring MVC 的配置文件中,我们需要添加 `Jackson` 的转换器,使得 Spring MVC 能够解析和生成 JSON 数据。例如,在使用 XML 配置时,可以添加以下配置: ```xml &lt;bean class="org....

    spring MVC 对 ResponseBody返回json数据进行脱敏处理

    本文将详细讨论如何在Spring MVC中针对`ResponseBody`返回的JSON数据进行脱敏处理。 首先,我们需要了解`ResponseBody`注解的作用。在Spring MVC中,当控制器方法的返回值前加上`@ResponseBody`时,Spring会将返回...

    springMVC3使用@ResponseBody向浏览器返回 json,注意区分jar包前缀

    -- @ResponseBody() spring-mvc 3 xml 配置--&gt; &lt;!--处理 @ResponseBody 中文乱码问题 --&gt; &lt;bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"&gt; ...

    Spring 注解学习手札(七) 补遗——@ResponseBody,@RequestBody,@PathVariable

    总之,`@ResponseBody`、`@RequestBody`和`@PathVariable`是Spring MVC中不可或缺的三大注解,它们在构建RESTful服务时起着至关重要的作用。掌握它们的用法和工作原理,能够提升我们的开发效率,使我们更好地利用...

    spring mvc json学习

    总之,"Spring MVC JSON学习"涵盖了许多关键概念,包括JSON数据的序列化和反序列化、控制器中使用`@RequestBody`和`@ResponseBody`、自定义序列化逻辑以及测试JSON API。掌握这些知识点将使你能够构建出高效、健壮的...

    Spring MVC之@RequestMapping详解

    《Spring MVC之@RequestMapping详解》 在Java Web开发中,Spring MVC框架因其强大的功能和灵活性而备受青睐。在处理HTTP请求时,@RequestMapping注解扮演着至关重要的角色,它负责将客户端的请求映射到控制器中的...

    对json格式的数据进行封装和转化,@responsebody注解所需的jar包JSON.rar

    描述中提到的"springmvc进行Jason数据封装转化时可以即使用也是@responsebody",指的是在Spring MVC的控制器(Controller)中,我们可以使用`@ResponseBody`注解配合Jackson库,实现将Java对象直接转换为JSON格式的...

    SpringMVC使用@ResponseBody.rar

    综上所述,`@ResponseBody`是Spring MVC中实现数据返回的关键组件,它使得我们可以方便地构建RESTful服务,与各种数据格式进行交互。理解其工作原理和使用方式,有助于我们更好地设计和实现高效的Web应用程序。

    SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(下)

    - 对于JSON数据,Spring MVC默认使用了Jackson库(Jackson2HttpMessageConverter)。若要返回JSON数据,确保项目已引入Jackson库,并且返回类型可被Jackson序列化。 - 对于XML数据,Spring MVC默认使用了JAXB库...

    spring mvc生成xml或json

    要生成JSON响应,你需要确保Spring MVC项目包含了Jackson库,这是一个常用的JSON处理库。在Gradle中,你可以在`build.gradle`文件中添加以下依赖: ```groovy implementation '...

    SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(上)

    在实际开发中,`@RequestBody` 和 `@ResponseBody` 的组合使用使得Spring MVC能够轻松地处理RESTful API的请求和响应。它们简化了数据交换的过程,减少了手动序列化和反序列化的代码,提高了开发效率。通过理解这两...

    Springmvc 4.x利用@ResponseBody返回Json数据的方法

    在Spring MVC 4.x版本中,开发者可以使用@ResponseBody注解来简化控制器层向客户端返回JSON格式数据的过程。 ### @ResponseBody注解使用方法 @ResponseBody注解可以作用于方法上,它会指示Spring MVC框架将该方法...

    springmvc操作json数据所需的jar包

    总结,Spring MVC处理JSON数据的关键在于引入正确的jar包(如Jackson库),配置Spring MVC以支持JSON,以及在控制器中使用适当的注解。通过理解这些基础知识,开发者可以有效地在Spring MVC应用中进行JSON数据的交互...

    Spring3 MVC Ajax with JSON

    **Spring3 MVC与Ajax结合使用JSON** 在现代Web开发中,Spring框架的MVC模块与Ajax和JSON的集成是创建动态、响应式用户界面的关键技术。这个"Spring3 MVC Ajax with JSON"项目提供了一个Eclipse工程,包含了实现这一...

    spring boot @ResponseBody转换JSON 时 Date 类型处理方法【两种方法】

    本篇文章主要介绍了两种处理Spring Boot中`@ResponseBody`转换JSON时Date类型的方法:Jackson和FastJson。 ### Jackson处理Date类型 Jackson是Spring Boot默认的JSON库,它提供了多种方式来格式化Date字段。 ####...

Global site tag (gtag.js) - Google Analytics