前言

分享下最近学习SSM框架遇到的一些BUG吧,首先从Tomcat的乱码开始吧开始吧。

1. tomcat乱码的处理方法

刚开始安装时Tomcat的默认端口是8080端口,我们可以通过修改安装目录下的conf文件下的server.xml来更改端口,并且可以指定Url的编码,我这里手动更改成了8888端口。

在输出端乱码的解决
将这些输出的encoding全部改成UTF-8就可以啦,然后在使用时就不会出现这些问题啦。

2. applicationContext.xml报错2 字节的 UTF-8 序列的字节 2 无效

配置文件报错org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing
XML document from class path resource [applicationContext.xml]; nested exception is
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException:
2 字节的 UTF-8 序列的字节 2 无效。

applicationContext.xml报错,我们只需要将xml的文件格式更改成UTF-8就好。

将这个UTF-8改成UTF8,然后如果还有其他文件也是这样的话,也得进行修改成UTF8,然后就可以正常启动啦。

3. 报错’application/json;charset=UTF-8’ not supported]

当时是写一个更新的功能,采用的是jqerry来进行数据的交互,代码如下

$.ajax({
url:"${pageContext.request.contextPath }/disableUser",
type:"post",
//data表示发送的数据
data:JSON.stringify({userId:userId,status:3}),
// 定义发送请求的数据格式为JSON字符串
contentType:"application/JSON; charset=UTF-8",
//定义回调响应的数据格式为JSON字符串,该属性可以省略
dataType:"json",
//成功响应的结果
success:function(data){
if(data!=null){
if(data.userId>0){
alert("禁用成功!");
window.location.reload();
}else{
alert("禁用失败!");
window.location.reload();
}
}
}
});

报错:[http-nio-8888-exec-2] org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.logException Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content type ‘application/json;charset=UTF-8’ not supported]

数据并没有访问到Controller层就已经报错,在网上翻了一下,最终找到大概是没添加jackson依赖的问题,我突然意识到似乎我们pom文件中确实是没有添加jacckson的依赖,下面是添加依赖的代码,注意版本之间的兼容性。

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.0</version>
</dependency>

我以为添加依赖就可以了,然后就一直试,没有想明白,最终看了一篇文章,才想起来,我的war是没有实时更新的,我添加依赖,但是在部署的时候,tomcat的war包是没有及时更新的,需要重新生成一个工件war,再部署就可以了。

总结

记录一下自己踩坑的记录,又白白花了一个小时,就很难受,这种小坑不能再踩第二次了,呜呜呜…

Tomacat乱码和报错UTF-8 序列的字节 2 无效和‘application/json;charset=UTF-8‘ not supported的处理的更多相关文章

  1. 【IDEA】启动项目报错:3 字节的 UTF-8 序列的字节 3 无效

    一.报错和原因: 项目起服务出错.具体报错就不贴了,报错主要是"3 字节的 UTF-8 序列的字节 3 无效". 分析:主要就是项目编码问题,IDEA中估计就是配置不对,没必要纠结 ...

  2. ArcGIS Runtime SDK for WPF之SimpleRenderer无法添加、报错“图形符号无法序列化为 JSON”

    ArcGIS Runtime SDK for WPF之SimpleRenderer无法添加.报错“图形符号无法序列化为 JSON” 在上一篇博文中如果在 esri:Map 里面是否设置了的UseAcc ...

  3. 【Java报错】Message: 3 字节的 UTF-8 序列的字节 2 无效

    报错logs 2015-03-10 10:15:32,360 ERROR [qtp32195030-27] [InvokeAfterValve.java:55] - javax.xml.stream. ...

  4. XML文件存在中文注释报错问题( 3 字节的 UTF-8 序列的字节 3 无效)

    今天在做mybatis项目的时候,给映射文件添加了中文注释后,程序就报错.把中文注释删除后,程序又可以正常执行.解决方法在下文提到. 我的xml映射文件如下: <?xml version=&qu ...

  5. 报错:3 字节的 UTF-8 序列的字节 3 无效。

    错误如下: Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with n ...

  6. LoadXml 加载XML时,报错:“根级别上的数据无效。 行1,位置1“

    ==XML=================================== <?xml version="1.0" encoding="utf-8" ...

  7. Webservice报错客户端发现响应内容类型为“application/json;charset=UTF-8”,但应为“text/xml”。

    控制台对接Webservice正常,同样的方法在Web项目上报错: 客户端发现响应内容类型为“application/json;charset=UTF-8”,但应为“text/xml”.请求失败,错误 ...

  8. com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 3 字节的 UTF-8 序列的字节 x 无效

    在启动Tomcat项目时,控制台报错:nested exception is com.sun.org.apache.xerces.internal.impl.io.MalformedByteSeque ...

  9. eclipse xml 编码问题 “3 字节的 UTF-8 序列的字节 3 无效”

    原本项目没问题,git commit之后,突然报错 “3 字节的 UTF-8 序列的字节 3 无效” 尝试过改xml文件编码等,没成功.pom中设置属性,成功解决 <project.build. ...

  10. tomcat 1字节的UTF-8序列的字节1无效

    微信支付时, 命名返回支付成功, 但是成功后却返回如下的错误, 在测试环境都是没有任何问题, 到客户现场后, 可能客户现场使用的4G网络, 用微信支付时一直报这样的错误 错误现象: com.sun.o ...

随机推荐

  1. mysql安装调试

    mysql安装 1.下载mysql的压缩包 tar -xvzf mysql-5.6.38-linux-glibc2.12-i686.tar.gz2.安装之后密码是随机的,所以我们需要重新修改密码: [ ...

  2. 转帖:弹性布局(display:flex;)属性详解

    它之所以被称为 Flexbox ,是因为它能够扩展和收缩 flex 容器内的元素,以最大限度地填充可用空间.与以前布局方式(如 table 布局和浮动元素内嵌块元素)相比,Flexbox 是一个更强大 ...

  3. TP5中redirect实现重定向及带参数跳转

    1.控制器 重定向url传参 try{ $result = Db::name('wupin')->insert($ist); if($result){ $this->redirect(ur ...

  4. rename基本操作

    电脑是Macbook, 用Homebrew先安装rename. 如果没安装Homebrew 直接复制到terminal中回车, 时间稍长. ruby -e "$(curl -fsSL htt ...

  5. Javaweb基础复习------JSON相关知识

    JSON(JavaScript对象表示法) 首先,我们需要知道的是,要使用json语法的话,就需要在Maven项目中导入相关的包,可以参考我之前发过的那个Maven导包那个网址,在里面找到这个页面: ...

  6. 干货 | BitSail Connector 开发详解系列一:Source

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 BitSail 是字节跳动自研的数据集成产品,支持多种异构数据源间的数据同步,并提供离线.实时.全量.增量场景下全 ...

  7. 一款基于js/jquery标签拖拽排序小组件

    这是一个基于jQuery写的拖拽小组件,写了大概两三天,刚好可以在前端方面练练手.拖拽原理是使用绝对定位+鼠标元素位置实现. GitHub地址:https://water1996.github.io/ ...

  8. 搭建良好编写体验的webgl编程环境 vscode+vit

    因为webgl代码是以字符串的形式嵌入在javascript代码中,这对于我们编写webgl代码的体验不友好,本文介绍如何搭建友好webgl编程环境: 需要安装的vscode插件 WebGL GLSL ...

  9. Rancher 系列文章-Rancher 升级

    概述 之前在 天翼云上用 4 台机器安装了一个 1 master(及 etcd) 3 node 的 K3S 集群,并在其上使用 Helm 安装了 Rancher 2.6.3 版本. 前几天发现 Ran ...

  10. 【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮(TimingWheel)实现延时队列的开发实战落地(上)

    承接上文 承接之前的[精华推荐 |[算法数据结构专题]「延时队列算法」史上非常详细分析和介绍如何通过时间轮(TimingWheel)实现延时队列的原理指南],让我们基本上已经知道了「时间轮算法」原理和 ...