在使用mybatis+spring 进行事务处理时,报如下错误:
"I:\Program Files (x86)\Java\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2020.3.3\lib\idea_rt.jar=64695:C:\Program Files\JetBrains\IntelliJ IDEA 2020.3.3\bin" -Dfile.encoding=UTF-8 -classpath "I:\Program Files (x86)\java\jre\lib\charsets.jar;I:\Program Files (x86)\java\jre\lib\deploy.jar;I:\Program Files (x86)\java\jre\lib\ext\access-bridge-64.jar;I:\Program Files (x86)\java\jre\lib\ext\cldrdata.jar;I:\Program Files (x86)\java\jre\lib\ext\dnsns.jar;I:\Program Files (x86)\java\jre\lib\ext\jaccess.jar;I:\Program Files (x86)\java\jre\lib\ext\jfxrt.jar;I:\Program Files (x86)\java\jre\lib\ext\localedata.jar;I:\Program Files (x86)\java\jre\lib\ext\nashorn.jar;I:\Program Files (x86)\java\jre\lib\ext\sunec.jar;I:\Program Files (x86)\java\jre\lib\ext\sunjce_provider.jar;I:\Program Files (x86)\java\jre\lib\ext\sunmscapi.jar;I:\Program Files (x86)\java\jre\lib\ext\sunpkcs11.jar;I:\Program Files (x86)\java\jre\lib\ext\zipfs.jar;I:\Program Files (x86)\java\jre\lib\javaws.jar;I:\Program Files (x86)\java\jre\lib\jce.jar;I:\Program Files (x86)\java\jre\lib\jfr.jar;I:\Program Files (x86)\java\jre\lib\jfxswt.jar;I:\Program Files (x86)\java\jre\lib\jsse.jar;I:\Program Files (x86)\java\jre\lib\management-agent.jar;I:\Program Files (x86)\java\jre\lib\plugin.jar;I:\Program Files (x86)\java\jre\lib\resources.jar;I:\Program Files (x86)\java\jre\lib\rt.jar;F:\mybatis\target\test-classes;F:\mybatis\target\classes;E:\Downloads\repository\mysql\mysql-connector-java\8.0.26\mysql-connector-java-8.0.26.jar;E:\Downloads\repository\com\google\protobuf\protobuf-java\3.11.4\protobuf-java-3.11.4.jar;E:\Downloads\repository\org\mybatis\mybatis\3.5.6\mybatis-3.5.6.jar;E:\Downloads\repository\org\springframework\spring-webmvc\5.3.15\spring-webmvc-5.3.15.jar;E:\Downloads\repository\org\springframework\spring-aop\5.3.15\spring-aop-5.3.15.jar;E:\Downloads\repository\org\springframework\spring-beans\5.3.15\spring-beans-5.3.15.jar;E:\Downloads\repository\org\springframework\spring-context\5.3.15\spring-context-5.3.15.jar;E:\Downloads\repository\org\springframework\spring-core\5.3.15\spring-core-5.3.15.jar;E:\Downloads\repository\org\springframework\spring-jcl\5.3.15\spring-jcl-5.3.15.jar;E:\Downloads\repository\org\springframework\spring-expression\5.3.15\spring-expression-5.3.15.jar;E:\Downloads\repository\org\springframework\spring-web\5.3.15\spring-web-5.3.15.jar;E:\Downloads\repository\org\springframework\spring-jdbc\5.3.5\spring-jdbc-5.3.5.jar;E:\Downloads\repository\org\springframework\spring-tx\5.3.5\spring-tx-5.3.5.jar;E:\Downloads\repository\org\aspectj\aspectjweaver\1.9.4\aspectjweaver-1.9.4.jar;E:\Downloads\repository\org\mybatis\mybatis-spring\2.0.6\mybatis-spring-2.0.6.jar;E:\Downloads\repository\org\projectlombok\lombok\1.18.20\lombok-1.18.20.jar" MyTest
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [beans.xml]; nested exception is com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 2 字节的 UTF-8 序列的字节 2 无效。
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:413)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:338)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:196)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:232)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:203)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:265)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:128)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:94)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:671)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:553)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:144)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:85)
at MyTest.main(MyTest.java:38)
Caused by: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 2 字节的 UTF-8 序列的字节 2 无效。
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(UTF8Reader.java:701)
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(UTF8Reader.java:372)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1895)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.scanData(XMLEntityScanner.java:1375)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanComment(XMLScanner.java:801)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanComment(XMLDocumentFragmentScannerImpl.java:1034)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2982)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:842)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:77)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadDocument(XmlBeanDefinitionReader.java:432)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
... 14 more
Process finished with exit code 1
代码显示的是 beans.xml有错误,
打开beans.xml 将
<?xml version="1.0" encoding="UTF-8"?>
改为
<?xml version="1.0" encoding="UTF8"?>
错误即可解决。