首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SpringMVC不能返回Json或Xml,Http 406

SpringMVC是一个基于Java的开源框架,用于构建Web应用程序。它提供了一种灵活的方式来处理HTTP请求和响应,并支持多种视图技术。然而,有时候在使用SpringMVC时,可能会遇到无法返回Json或Xml的问题,导致HTTP状态码为406。

HTTP状态码406表示客户端请求的资源的内容特性无法满足服务器的要求。在SpringMVC中,这通常是由于缺少适当的配置或处理器方法返回类型不正确导致的。

要解决这个问题,可以采取以下步骤:

  1. 确保正确配置了Jackson或其他类似的库:SpringMVC使用Jackson库来处理Json序列化和反序列化。确保在项目的依赖中包含了Jackson库,并且在Spring配置文件中启用了适当的配置。
  2. 使用@ResponseBody注解:在处理器方法上使用@ResponseBody注解,将方法的返回值直接作为HTTP响应的内容返回。这样可以确保返回的数据以Json或Xml格式进行序列化。
  3. 设置合适的Content-Type:在处理器方法上使用@RequestMapping注解,并设置produces属性来指定返回的内容类型。例如,使用"application/json"来返回Json格式的数据,使用"application/xml"来返回Xml格式的数据。
  4. 检查请求头中的Accept字段:客户端发送的HTTP请求中的Accept字段指定了客户端期望接收的内容类型。确保服务器能够根据请求头中的Accept字段来选择合适的处理器方法。

综上所述,要解决SpringMVC不能返回Json或Xml的问题,需要正确配置Jackson或其他类似的库,并在处理器方法上使用@ResponseBody注解和合适的Content-Type设置。同时,还需要检查请求头中的Accept字段以确保服务器能够正确选择处理器方法。以下是腾讯云相关产品和产品介绍链接地址:

  • 腾讯云产品:云服务器(https://cloud.tencent.com/product/cvm)、云数据库MySQL版(https://cloud.tencent.com/product/cdb_mysql)、云原生容器服务(https://cloud.tencent.com/product/tke)、云存储(https://cloud.tencent.com/product/cos)、人工智能(https://cloud.tencent.com/product/ai)、物联网(https://cloud.tencent.com/product/iot)、移动开发(https://cloud.tencent.com/product/mobdev)、区块链(https://cloud.tencent.com/product/bc)、元宇宙(https://cloud.tencent.com/product/mu)。

请注意,以上链接仅供参考,具体产品选择应根据实际需求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

一个SpringMVC接口能返回JSON又能返回XML? 安排!

原理 在HTTP协议里,当客户端发起一个HTTP请求时,可以携带一个请求头Accept来告诉服务端,客户端可以接受哪些响应类型(MIME),可以是一个也可以是多个。...Spring MVC提供了一种被称作内容协商的机制,客户端在请求时声明需要的MIME类型,服务端只需要配置一些策略就是实现一个接口返回不同MIME类型的数据格式,想要JSON返回JSON,想要XML返回...json  如果你想指定默认返回类型就需要声明                 // .defaultContentType(MediaType.APPLICATION_XML)                 ...根据上面的配置,如果你需要返回JSON: https://yourapi?...如果你需要返回XML: https://yourapi?

46930

SpringMVC配置Tomcat返回406问题探索

先贴一下老版本(3.0.4.RELEASE)配置的SpringMVC,由于项目之前就有Spring的配置,在此只贴与SpringMVC相关的 web.xml ...param-name>contextConfigLocation classpath:spring/applicationContext-springmvc.xml...String没有问题,返回POJO与Map等页面报406错误 ApplicationAware类报NPE错误 其他与具体项目相关的错误 尝试过的解决办法: 2、3是首先解决的,因为是具体项目相关的东西...-- Json转换器配置 --> <bean id="mappingJackson2HttpMessageConverter" class="org.springframework.<em>http</em>.converter.<em>json</em>.MappingJackson2HttpMessageConverter...-- <em>Json</em>转换器配置 --> <bean id="mappingJackson2HttpMessageConverter" class="org.springframework.<em>http</em>.converter.<em>json</em>.MappingJackson2HttpMessageConverter

1.1K30

post请求406,not acceptable问题

最近在做一个项目,发现自己从ajax发送请求后返回json数据接收不到,后台没有报错,经测试ajax的seccess内代码没有走,打开浏览器控制台一看,报错post:406 not acceptable...那么返回的内容会经过视图解析器,加上标签后返回的数据会直接写入到输入流中,也就是直接写到http响应正文中。 2、没有导入json的jar包。没有json包自然不能转换成json数据,也自然接收不到。...PS:jackson有两个版本曾报过安全漏洞 3、springmvc配置文件中没有加。 4、spring的版本与json版本不兼容。...我们使用@responsebody将数据直接写到响应正文中,如果是json或者xml数据是需要转换器对其进行转换的,下有子标签源码解析,一位博主写的,非常棒,传送门: https://www.cnblogs.com/fangjian0423/p/springMVC-xml-json-convert.html

1.6K20

day78_淘淘商城项目_11_单点登录系统实现 + 用户名回显 + ajax请求跨域问题详解_匠心笔记

先在taotao-sso-web工程中的pom.xml文件中配置对taotao-sso-interface的依赖,表现层调用服务要通过该接口, 在taotao-sso-web工程中的springmvc.xml...我们修改访问地址:http://localhost:8088/user/check/zhangsan/1.html 此时浏览器报406错误。原因如下图: ?...但是如果服务端返回的是一个java对象的话,那么浏览器不能将一个java对象转换成一个html对象,即就会报406错误。(这是一个大坑!) 1.2、用户注册接口开发 1.2.1、功能分析 ?...1.3.5、引用服务 在taotao-sso-web工程中的springmvc.xml文件中引用服务: ?...第二步:在taotao-sso-web的springmvc.xml文件中配置资源映射标签,即不拦截静态资源 ?

1.3K31

SpringBoot中的内容协商,颠覆你的认知

2.3、测试场景 2 我们在 idea 中使用 Http Client 来访问一下上面这个接口,效果如下,返回的结果依然是 xml 格式的数据。...再比如:服务器端可以响应 json 和 html 格式的数据,而客户端发送 http 请求的时候,说自己希望接受 xml 格式的数据,此时服务器端没有能力返回 xml 格式的数据,最终会报错。...4.2、又带来了 2 个问题 问题 1:什么是媒体类型 问题 2:http 请求头 Accept 是什么样的? 5、什么是媒体类型(MimeType MediaType)?...json 格式数据 测试场景 2:头 Accept 指定为 applicaiton/xml,出现了 406,服务器端无法处理,那是因为客户单希望服务器端返回application/xml格式数据,而服务器端接口只能返回...,所以加了这些配置之后,SpringMVC 才有了处理 jsonxml 的能力,这里也算是解答了本文开头的问题。

1K41

SpringMVC注解@RequestMapping之produces属性导致的406错误

我这次的流程就是集成了MyBatis的分页插件,简单实现了一个分页功能,最后将数据返回给浏览器,就因为我的随手一粘贴,才引发了这场406,别忘了各位看图说话。 ?        ...我首先说说我的惨痛经历吧,一直对spring框架的AOP原理狠是模糊,就在上周五自己想好好研究一下,但是很多美好的事情都不是那么一路绿灯,磕磕绊绊总算是差不多了,但是在最后给我返回一个406错误,这可是我第一次碰到这种傻逼错误...在使用SpringMVC的@RequestMapping注解时注意,如果你为了解决http请求响应的乱码问题,执意在@RequestMapping注解上使用produces属性来快速解决,那么这时候你可要注意了...,假如你给浏览器返回一个对象并且使用@ResponseBody注解自动转成json数据返回的同时并且使用了produces属性来解决乱码问题,那么情况就不是太理想了,406随之而来。...,二是先将对象转成json数据,然后可以使用produces属性解决乱码问题。

2K60

springMVC接收参数 xmljson

springMVC参数接收作为web层框架,可以接受复杂的类型,且很简单 1.接收字符串可以直接写参数类型,参数名称,跟前端传过来的name值一样即可   如果不一样也可以,通过@RequestParam...参数来进行映射下,也是可以设置默认值的 2.接收对象的话直接传对象的名称即可,同理@RequestParam是一样的效果(虽然没用过) 3.接收xml   需要经过@RequestBody来进行自动封装...,bean的话是需要实现序列化接口且类上需要添加@XmlRootElement(name="wx")注解,name就时root标签名称 getset省略 至于需要传xml数据到后台,推荐使用postman...4.传递json格式就很常用了,也是需要加@RequestBody,要返回json对象的话直接使用@ResponseBody注解,倘若访问状态码为406,那就是少 这三个jar包 操作: 测试的话也使用

1.8K30

springMVC接收参数 xmljson

springMVC参数接收 作为web层框架,可以接受复杂的类型,且很简单 1.接收字符串可以直接写参数类型,参数名称,跟前端传过来的name值一样即可   如果不一样也可以,通过@RequestParam...参数来进行映射下,也是可以设置默认值的 2.接收对象的话直接传对象的名称即可,同理@RequestParam是一样的效果(虽然没用过) 3.接收xml   需要经过@RequestBody来进行自动封装...至于需要传xml数据到后台,推荐使用postman,网上一大堆教程,最简单的不用集成什么开发插件,直接下载这个就行。...4.传递json格式就很常用了,也是需要加@RequestBody,要返回json对象的话直接使用@ResponseBody注解,倘若访问状态码为406,那就是少 ? 这三个jar包 操作: ?

1.2K40

SpringMVC @RequestBody注解获取请求体信息

简介在SpringMVC中,@RequestBody注解用于将HTTP请求体(body)中的数据绑定到方法的参数上。...当客户端向服务器发送请求时,请求中包含的数据可能是JSONXML、二进制数据等格式,@RequestBody注解可以将请求体中的数据转换成Java对象,并将其作为方法的参数传递进来。...语法使用@RequestBody注解时,需要注意以下几点:@RequestBody注解只能用于请求体(body)中的数据,不能用于URL中的数据请求参数中的数据。...HttpMessageConverter是SpringMVC框架中用于转换HTTP请求和响应中的消息体的组件,SpringMVC内置了多种HttpMessageConverter,包括将JSONXML...如果一切正常,createUser方法会返回该User对象,并将该对象转换成JSON格式的响应体返回给客户端。

57230

【愚公系列】2023年04月 Java教学课程 137-Spring MVC框架的Response响应详解

---- 一、响应 Spring MVC框架中的Response响应指的是处理器方法返回值被转换成HTTP响应的对象,其中包含了响应的状态、内容等信息。...406 不接受 && 无法使用请求的内容响应请求的网页。 407 需要代理授权 && 请求者需要使用代理授权。 408 请求超时 && 服务器请求超时。...504 网关超时 && 服务器作为网关代理,但是没有及时从上游服务器收到请求。 505 HTTP版本不支持 && 服务器不支持请求中所用的HTTP协议版本。...ModelAndView对象 return modelAndView; } 4.返回json数据 方式一:基于response返回数据的简化格式,返回JSON数据 //使用jackson进行json...提供的消息类型转换器将对象与集合数据自动转换为JSON数据 //使用SpringMVC注解驱动,对标注@ResponseBody注解的控制器方法进行结果转换,由于返回值为引用类型,自动调用jackson

39720

SpringMVC的数据响应(二)

”) 回写数据,此时不需要视图跳转,业务方法返回值为void 将需要回写的字符串直接返回,但此时需要通过@ResponseBody注解告知SpringMVC框架,方法返回的字符串不是跳转是直接在http...(user); return string; } 4.8.SpringMVC的数据响应-回写数据-返回对象集合(应用) 通过SpringMVC帮助我们对对象集合进行json字符串的转换并回写...的数据响应-回写数据-返回对象集合2(应用) 在方法上添加@ResponseBody就可以返回json格式的字符串,但是这样配置比较麻烦,配置的代码比较多,因此,我们可以使用mvc的注解驱动代替上述配置...同时使用 默认底层就会集成jackson进行对象集合的json格式字符串的转换 4.10.SpringMVC的数据响应-知识要点小结(理解,记忆) 1...,Model对象带回数据或者@ResponseBody将字符串数据写回 返回对象集合 @ResponseBody+

12910

day64_SpringMVC学习笔记_02

1、springmvc对多视图的支持 (1)导入xml格式视图支持的jar包 image.png 注意:springmvc本身就支持xml格式,所以不用导入其他支持的jar包了。...> (5)定义Controller     // 多视图支持     // 返回的是对象,把返回的对象转换成json格式视图和xml格式的视图     @RequestMapping("multiView...即:访问json格式的数据,需要加上json扩展名;访问html格式的数据,需要加上html的扩展名;访问xml格式的数据,需要加上xml的扩展名。   ...-- 表示默认创建:处理器映射器对象、处理器映射器对象,还表示默认启动json格式数据的支持 -->      但是注意:此时javaBean不能添加注解...4、mapper接口的返回值类型要和mapper映射文件中statement的resultType的值resultMap中的type的值保持一致。

78710
领券