读取的SqlMapConfig.xml文件如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<properties
resource="com/ez_logistics/sqlmapxml/SqlMapConfig.properties" />
<settings cacheModelsEnabled="true" enhancementEnabled="true"
lazyLoadingEnabled="true" maxRequests="128" maxSessions="10"
maxTransactions="5" useStatementNamespaces="false"
defaultStatementTimeout="5" statementCachingEnabled="true"
classInfoCacheEnabled="true" />
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${driver}" />
<property name="JDBC.ConnectionURL" value="${url}" />
<property name="JDBC.Username" value="${username}" />
<property name="JDBC.Password" value="${password}" />
<property name="JDBC.DefaultAutoCommit" value="true" />
<property name="Pool.MaximumActiveConnections" value="10" />
<property name="Pool.MaximumIdleConnections" value="5" />
<property name="Pool.MaximumCheckoutTime" value="60000" />
<property name="Pool.TimeToWait" value="500" />
<property name="Pool.PingQuery"
value="select 1 from ACCOUNT" />
<property name="Pool.PingEnabled" value="false" />
<property name="Pool.PingConnectionsOlderThan" value="1" />
<property name="Pool.PingConnectionsNotUsedFor" value="1" />
</dataSource>
</transactionManager>
<sqlMaps>
<sqlMap resource = "com/ez_logistics/sqlmapxml/CustomerSqlMap.xml"/>
<sqlMap resource = "com/ez_logistics/sqlmapxml/DriverSqlMap.xml"/>
<sqlMap resource = "com/ez_logistics/sqlmapxml/BargeSqlMap.xml"/>
<sqlMap resource = "com/ez_logistics/sqlmapxml/DockSqlMap.xml"/>
<sqlMap resource = "com/ez_logistics/sqlmapxml/EmptCntSqlMap.xml"/>
</sqlMaps>
</sqlMapConfig>但是报下列错误
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.ez_logistics.test.CustomerTest.<init>(CustomerTest.java:13)
at com.ez_logistics.test.CustomerTest.main(CustomerTest.java:18)
Caused by: java.lang.RuntimeException: Error occurred.  Cause: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: org.xml.sax.SAXParseException: Element type "sqlMaps" must be declared.
at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:89)
at com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(SqlMapClientBuilder.java:63)
at com.ez_logistics.dao.BaseIbatisDAO.<clinit>(BaseIbatisDAO.java:20)
... 2 more
Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: org.xml.sax.SAXParseException: Element type "sqlMaps" must be declared.
at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:53)
at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:86)
... 4 more
不知道怎么改,高手赐教!!

解决方案 »

  1.   

    Document root element "sqlMap", must match DOCTYPE root "null".  是你的sql-map头有问题。自己到其他 地方去复制一个来覆盖头就可以了
      

  2.   

    把<sqlMaps>和</sqlMaps>删除!
      

  3.   

    楼上的说的对
    <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMapConfig      
        PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"      
        "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"><sqlMapConfig>  <transactionManager type="JDBC">
        <dataSource type="SIMPLE">
          <property name="JDBC.Driver" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>      <property name="JDBC.ConnectionURL" value="jdbc:microsoft:sqlserver://localhost:1433;databaseName=ibatis;SelectMethod=cursor"/>
          <property name="JDBC.Username" value="sa"/>
          <property name="JDBC.Password" value="ok"/>
        </dataSource>
      </transactionManager>
      <sqlMap resource="Employee.xml"/></sqlMapConfig>
    这是我以前用IBATIS时的文件 给你参考下
      

  4.   

    对,把 <sqlMaps>和 </sqlMaps>删除!
      

  5.   

    在CustomerSqlMap.xml的头部加上
    <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">