1、406错误

发生406错误的原因是服务器传递回来的值客户端无法解析。通过在谷歌浏览器的开发浏览器查看代码,发现RequestHeader的Accept格式为application/json格式,而服务器传回的报文中ResponseHeader的格式却为text/html,导致js解析不了数据,报406错误。因此,我们需要将服务器的数据先转换成json,再将其以application/json的Content-type传回给客户端,需要导入jackson的jar包。

com.fasterxml.jackson.core

jackson-core

2.9.10

com.fasterxml.jackson.core

jackson-annotations

2.9.10

com.fasterxml.jackson.core

jackson-databind

2.9.10

jackson包的可选对象有很多,包括 com.fasterxml.jackson、org.codehaus.jackson、com.alibaba.fastjson,那么为什么要选fasterxml呢?选它的依据在哪呀?之后会提到。

显然,只导包是没有用的,我们得有工具去转换对象,这里jackson包已经给我们提供了工具类。

在讲工具类前,我们先要了解一点知识,那就是@ResponseBody这个注解:

对于没有添加@ResponseBody注解的Controller方法,其返回值应该是一个View,即一个具体的视图交给DispatcherServlet,然后由配置好的ViewResolver去解析这个View。SpringMVC框架提供了好几种视图解析器,我主要讲一个:internalResourceViewResolver,它将视图解析为Web的内部资源,通常为JSP。若方法返回的是ModelAndView,则视图解析器根据View的name来定位资源,若方法返回的是字符串,则将该字符串当作View的name,用它来定位资源。

而对于添加了@ResponseBody注解的Controller方法(等价于@RestController),其返回值不作为视图资源定位的依据,而是通过一个转换器将返回对象转换成json格式传递给调用方。org.springframework.http.converter.json.MappingJackson2HttpMessageConverter  就是这样的一个转换器,他由Spring框架提供,能将对象转换成json格式再进行回传。

通过查看这个对象,发现它有  com.fasterxml.jackson  包对象的引用,故如果想使用它,必须导入fasterxml的jar包。

配置转换器的方式有两种:注解和非注解方式

application/json;charset=UTF-8

text/html;charset=UTF-8

注意:注解注入的转换器优先级要高于普通注入的json转换器。SpringMVC 默认只知其5个tag,分别是 mvc:annotation-driven,mvc:interceptors,mvc:view-controller,mvc:resources 和 mvc:default-servlet-handler。若要支持 mvc:message-converters 标签,需要在 classpath 下有对应 jar 包,然后配置文件配置正确:对于 spring-mvc.xml 中的 schema ,若配置为 http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd,则该标签无法正常使用,而若配置为这样 http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd (3.1及以上),则该标签可以正常使用。

2、在pom.xml文件中添加jackson包依赖后,仍然报错java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonProcessingException的原因

通过查看导出文件夹中的lib文件,发现没有fasterxml包,这是为什么呢?

检查project structure,在artifact中发现war部署文件中没有添加新添加的fasterxml包,将其依赖添加进war部署后,重新启动成功。

参考文章:

java406错误_Java项目部署遇到406错误相关推荐

  1. filezilla 设置服务器_java项目部署到linux服务器,微信小程序后台springboot项目部署到腾讯云服务器(图文详解)...

    前面给大家讲了一个点餐系统的开发,包括java点餐后台和微信点餐小程序.可是都是教大家如何在本地把项目跑起来.今天就来教大家如何把这个点餐系统部署到服务器,实现商用. 传送门 点餐系统的开发,java ...

  2. springboot 获取登录浏览器_java项目部署到linux服务器,微信小程序后台springboot项目部署到云服务器(图文详解)...

    前面给大家讲了一个点餐系统的开发,包括java点餐后台和微信点餐小程序.可是都是教大家如何在本地把项目跑起来.今天就来教大家如何把这个点餐系统部署到服务器,实现商用. 传送门 点餐系统的开发,java ...

  3. java linux 服务_java项目部署Linux服务器几种启动方式总结经验

    一:两种部署包: 部署之前先说下两种包,java项目部署到服务器一般有用war包的,也有用jar包的,微服务spring-cloud普及后大部分打包都是jar,部署之前先搞清楚自己要打war包还是ja ...

  4. java 设置400错误_Java项目报400错误的原因与解决方法

    java项目中400错误介绍:(推荐:java视频教程) 400 Bad Request: 请求中的语法错误.Reason-Phrase应当标志这个详细的语法错误,比如"Missing Ca ...

  5. java文件运行错误_java项目中运行错误

    展开全部 Java异常概念 1)Java异常是32313133353236313431303231363533e59b9ee7ad9431333363373666Java提供的用于处理程序错误的一种机 ...

  6. mysql 报500错误_java 项目开启mysql binlog参数后报500错误:

    问题: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and ...

  7. k8s集群部署项目_JAVA项目(部署镜像暴露应用)---K8S_Google工作笔记0062

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 上面我们已经给我们的java项目,制作了dockerfile的docker镜像,然后 把这个镜像推 ...

  8. java时间解析错误_java.lang.IllegalArgumentException:解析错误-日期格式错误?

    我正在使用变量CURRENT_DATE将当前日期存储在SQLite数据库中.我发现使用的日期格式是yyyy-mm-dd.我想解析代码中的日期,但出现此错误: java.lang.IllegalArgu ...

  9. java脚本项目_java项目部署脚本 - xixingzhe的个人空间 - OSCHINA - 中文开源技术交流社区...

    #!/bin/sh #java export JAVA_HOME=/root/java/jdk #日志目录 export LOG_HOME=`pwd`/ #项目名称 APP_NAME=xxx.jar ...

  10. 老项目Xcode5.1编译器错误

    老项目编译器错误 老项目Xcode5.x编译器错误问题解决方法:参考资料 老项目Xcode5.x编译器错误 问题 Unsupported compiler 'com.apple.compilers.l ...

最新文章

  1. js 性能优化整理之 缓存变量
  2. windows mysql 自动备份的几种方法
  3. c语言除法效率问题,【图片】今天写几个性能测试,为什么C语言跑得这么慢呢??【c语言吧】_百度贴吧...
  4. Java应用程序上的Twitter API
  5. getimg()在java中,java – 使用getClass()加载资源getResource()
  6. 志汇叮咚超级外卖小程序源码6.4.3
  7. ARMV8体系结构简介
  8. 页面滚动到某一位置吸顶_vue监听滚动事件某元素吸顶或固定位置显示详解
  9. 关于excel数据透视表的数据填充
  10. Cadence输出Gerber文件
  11. STM32芯片无法下载 芯片锁死 M3错误的一种解决方案
  12. 图像压缩-《Learned Image Compression with Discretized Gaussian Mixture Likelihoods and Attention Modules》
  13. 对Si446x驱动库的一些修改
  14. UnicodeDecodeError: 'shift_jis' codec can't decode byte 0x93 in position 4: illegal multibyte sequen
  15. python中跳过本次循环的语句是_Python跳过for循环
  16. 20180418小测
  17. Android开发图标尺寸详解
  18. Anaconda安装详细教程
  19. Python爬虫+PyQt5制作mp3下载工具
  20. twitter java_将twitter集成到你的Java程序中

热门文章

  1. 密歇根州立大学计划投入4600万美元建设新数据中心
  2. 百度地图API的IP定位城市和浏览器定位
  3. 设计一图书信息管理系统,实现以下功能:系统以菜单方式工作,图书信息录入功能(图书信息用文件保存) ;
  4. 王道数据结构代码---第五章:二叉树(重要)
  5. Mandelbrot集Julia集分形的MATLAB实现(分形艺术)
  6. 【多媒体】媒体的概念和分类
  7. Logstash 时间转换(YYYY-MM-dd HH:mm:ss转Unix时间)
  8. 结构化程序设计(structured programming)
  9. ADS仿真功率放大器模型导入报错问题解决
  10. 韩国严厉监管元宇宙相关企业