The content of element type "configuration" must match "(properties?,setting

本文解决了一个关于MyBatis配置文件中元素顺序的问题。详细介绍了由于元素配置顺序不正确导致的XML解析错误,并提供了正确的配置顺序及修正后的配置文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在运行mybatis配置文件的时候,出现错误:

[html]  view plain  copy
  1. Caused by: org.xml.sax.SAXParseException: The content of element type "configuration" must match "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,plugins?,environments?,databaseIdProvider?,mappers?)".  
  2.     at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)  
  3.     at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)  
  4.     at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)  
  5.     at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)  
  6.     at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:2017)  
  7.     at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:901)  
  8.     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1774)  
  9.     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930)  
  10.     at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)  
  11.     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)  
  12.     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)  
  13.     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)  
  14.     at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)  
  15.     at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:225)  
  16.     at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:283)  
  17.     at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:254)  
  18.     ... 21 more  

配置文件如下:

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  
  3. "http://mybatis.org/dtd/mybatis-3-config.dtd">  
  4. <configuration>  
  5.     <properties resource="dbConfig.properties"></properties>  
  6.     <environments default="development">  
  7.         <environment id="development">  
  8.             <transactionManager type="JDBC" />  
  9.             <dataSource type="POOLED">  
  10.                 <property name="driver" value="${driver}" />  
  11.                 <property name="url" value="${url}" />  
  12.                 <property name="username" value="${dbuser}" />  
  13.                 <property name="password" value="${dbpassword}" />  
  14.             </dataSource>  
  15.         </environment>  
  16.     </environments>  
  17.     <mappers>  
  18.         <mapper resource="com/apps/dao/RemainDao.xml"/>  
  19.         <mapper resource="com/apps/dao/WorkSpaceDao.xml"/>  
  20.     </mappers>  
  21.     <typeAliases>  
  22.         <typeAlias type="com.apps.domain.Remian" alias="Remian"/>  
  23.         <typeAlias type="com.apps.domain.WorkSpace" alias="WorkSpace"/>  
  24.     </typeAliases>  
  25. </configuration>  

找了老半天,才发现配置文件 configuration 中的元素,不但有类型限制,也有顺序限制。必须按照(
[html]  view plain  copy
  1. match "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,plugins?,environments?,databaseIdProvider?,mappers?)".  
)进行配置。修改配置文件


[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  
  3. "http://mybatis.org/dtd/mybatis-3-config.dtd">  
  4. <configuration>  
  5.     <properties resource="dbConfig.properties"></properties>  
  6.     <typeAliases>  
  7.         <typeAlias type="com.apps.domain.Remian" alias="Remian"/>  
  8.         <typeAlias type="com.apps.domain.WorkSpace" alias="WorkSpace"/>  
  9.     </typeAliases>  
  10.     <environments default="development">  
  11.         <environment id="development">  
  12.             <transactionManager type="JDBC" />  
  13.             <dataSource type="POOLED">  
  14.                 <property name="driver" value="${driver}" />  
  15.                 <property name="url" value="${url}" />  
  16.                 <property name="username" value="${dbuser}" />  
  17.                 <property name="password" value="${dbpassword}" />  
  18.             </dataSource>  
  19.         </environment>  
  20.     </environments>  
  21.     <mappers>  
  22.         <mapper resource="com/apps/dao/RemainDao.xml"/>  
  23.         <mapper resource="com/apps/dao/WorkSpaceDao.xml"/>  
  24.     </mappers>     
  25. </configuration>  


之后可以通过.........

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值