栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

文章目录
  • 前言
    • 1. tomcat乱码的处理方法
    • 2. applicationContext.xml报错2 字节的 UTF-8 序列的字节 2 无效
    • 3. 报错'application/json;charset=UTF-8' not supported]
  • 总结

前言

分享下最近学习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的依赖,下面是添加依赖的代码,注意版本之间的兼容性。


            com.fasterxml.jackson.core
            jackson-core
            2.9.0
        
        
            com.fasterxml.jackson.core
            jackson-databind
            2.9.0
        
        
            com.fasterxml.jackson.core
            jackson-annotations
            2.9.0
        

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

总结

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1003486.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号