spring MalformedByteSequenceException:3 字节的 UTF-8 序列的字节 3 无效 解决的三种方法

本文解决了Spring结合MyBatis时出现的UTF-8编码问题,包括XML文件中的中文注释导致的解析错误、配置文件编码不一致及Maven资源构建时的字符集设置。

错误如下:Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlTemplate' defined in URL 

[file:/E:/sources/gitosc/wms-mine/wms-inventory/wms-inventory-web/target/classes/spring-config-dao.xml]: Cannot resolve reference to bean 'sessionFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in URL [file:/E:/sources/gitosc/wms-mine/wms-inventory/wms-inventory-web/target/classes/spring-config-dao.xml]: Invocation of init method failed; nested exception is org.springframework.core.NestedIOException: Failed to parse config resource: class path resource [sqlmap-config.xml]; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance.  Cause: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 3 字节的 UTF-8 序列的字节 3 无效。  

解决办法:

一、在注释中出现了中文注释和中文空格 ,将其删除或改成英文注释即可,(尤其是中文空格)

二、检查xml的头文件和右键属性里面的编码是否一致

三、

  1. 尝试在pom.xml加入如下配置:

  2.  <build>  
  3. <resources>  
  4.     <resource>  
  5.         <directory>src/main/resources</directory>  
  6.         <filtering>true</filtering>  
  7.     </resource>  
  8. </resources>  
  9.   
  10.  <plugins>  
  11.     <plugin>  
  12.         <groupId>org.apache.maven.plugins</groupId>  
  13.         <artifactId>maven-resources-plugin</artifactId>  
  14.         <configuration>  
  15.             <encoding>UTF-8</encoding>  
  16.         </configuration>  
  17.     </plugin>  
  18.   </plugins>  
  19. </build>
  20.  
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值