ibatis-spring+iBatis的xml解析问题

问题描述

spring+iBatis的xml解析问题

使用Spring+iBatis开发,测试是发生如下异常,百思不得其解啊!求高人指点

`Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlMapClient' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is org.springframework.core.NestedIOException: Failed to parse config resource: class path resource [sql-map-config.xml]; nested exception is com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'.  Cause: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 1; 文件提前结束。`

以下是我的代码
applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">

<!-- lob字段配置 -->
<bean id="nativeJdbcExtractor" lazy-init="true"
    class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor" />
    <!--    class="org.springframework.jdbc.support.nativejdbc.WebSphereNativeJdbcExtractor" /> -->

<bean id="lobHandler" lazy-init="true"
    class="org.springframework.jdbc.support.lob.OracleLobHandler">
    <property name="nativeJdbcExtractor">
        <ref bean="nativeJdbcExtractor" />
    </property>
</bean>

<!-- 加载系统数据源配置文件 -->
<!--
<bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName">
        <value>org.logicalcobwebs.proxool.ProxoolDriver
        </value>
    </property>
    <property name="url">
        <value>proxool.cloud</value>
    </property>
</bean>
-->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="jdbc.properties" />
    <property name="fileEncoding" value="UTF-8" />
</bean>
<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
            <!--
             <property name="driver">
                     <value>com.mysql.jdbc.Driver</value>
             </property>
             <property name="driverUrl">
                     <value>jdbc:mysql://localhost/mytest?characterEncoding=utf-8</value>
             </property>
             -->
            <property name="driver">
                    <value>${jdbc.driver}</value>
            </property>
            <property name="driverUrl">
                    <value>${jdbc.url}</value>
            </property>
            <property name="user">
                    <value>${jdbc.username}</value>
            </property>
            <property name="password">
                    <value>${jdbc.password}</value>
            </property>
            <!--
             <property name="user">
                     <value>root</value>
             </property>
             <property name="password">
                     <value>root</value>
             </property>
             -->
             <property name="alias">
                     <value>wstudy</value>
             </property>
             <property name="houseKeepingSleepTime">
                     <value>60000</value>
             </property>
             <property name="prototypeCount">
                     <value>5</value>
             </property>
             <property name="simultaneousBuildThrottle">
                 <value>20</value>
             </property>
             <property name="maximumActiveTime">
                 <value>60000</value>
             </property>
             <property name="houseKeepingTestSql">
                 <value>select CURRENT_DATE</value>
             </property>
             <property name="maximumConnectionCount">
                     <value>10</value>
             </property>
             <property name="minimumConnectionCount">
                     <value>1</value>
             </property>
             <property name="trace">
                     <value>true</value>
             </property>
             <property name="verbose">
                     <value>true</value>
             </property>
</bean>
<!-- *************************************************************************** -->
<!-- 事务管理 -->
<bean id="transactionManager"
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
      <property name="dataSource">
        <ref bean="dataSource"/>
    </property>
</bean>

<!-- 事务通知 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
    <tx:attributes>
        <tx:method name="find*" propagation="REQUIRED" timeout="60" rollback-for="Exception"/>
        <tx:method name="add*" propagation="REQUIRED" timeout="60" rollback-for="Exception"/>
        <tx:method name="delete*" propagation="REQUIRED" timeout="60" rollback-for="Exception"/>
        <tx:method name="modify*" propagation="REQUIRED" timeout="60" rollback-for="Exception"/>
        <tx:method name="save*" propagation="REQUIRED" timeout="60" rollback-for="Exception"/>
        <tx:method name="insert*" propagation="REQUIRED" timeout="60" rollback-for="Exception"/>
        <tx:method name="update*" propagation="REQUIRED" timeout="60" rollback-for="Exception"/>
        <tx:method name="*" read-only="true" timeout="60"/>
    </tx:attributes>
</tx:advice>
<!-- WEB-INF/classes/  -->
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
    <property name="configLocations" value="sql-map-config.xml" />
    <property name="dataSource" ref="dataSource" />
</bean>

<bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate">
    <property name="sqlMapClient">
        <ref bean="sqlMapClient" />
    </property>
</bean>

<bean id="baseDao" class="com.wstudy.core.dao.BaseDaoImpl">
    <property name="sqlMapClientTemplate">
        <ref bean="sqlMapClientTemplate" />
    </property>
</bean>
<!--将上面的模版类织入到我们的DAO对象中 -->
<bean id="studentDao" class="test.ibatis.StudentDao">
    <property name="sqlMapClientTemplate">
        <ref bean="sqlMapClientTemplate" />
    </property>
</bean>
<bean id="stDao" class="com.wstudy.dao.impl.StudentDaoImpl" parent="baseDao" scope="prototype">
</bean>

<!--
<bean id="dbtest" class="org.springframework.jdbc.core.JdbcTemplate">
    <property name="dataSource">
        <ref local="dataSource" />
    </property>
</bean>
 -->

 <!-- 小柴的beans开始 -->
 <!-- 导入其他配置模块 -->
<import resource="com/wstudy/questions/service/Question.xml" /> 

<!-- 导入其他配置模块 -->
<import resource="com/wstudy/service/teacher/teacher.xml" />

sql-map-config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">

<settings
    cacheModelsEnabled="true"
    enhancementEnabled="true"
    lazyLoadingEnabled="true"
    errorTracingEnabled="true"
    maxRequests="50"
    maxSessions="10"
    maxTransactions="5"
    useStatementNamespaces="true"
/>
<!--
<sqlMap resource="com/wstudy/test/AdminUserEntity.xml" />
-->
<sqlMap resource="com/wstudy/entity/teacher/TeacherEntity.xml" />
<sqlMap resource="com/wstudy/entity/teacher/EvaluationEntity.xml" />
<sqlMap resource="com/wstudy/entity/teacher/TeacherStarEntity.xml" />
<sqlMap resource="com/wstudy/entity/teacher/QueAnsEntity.xml" />
<sqlMap resource="com/wstudy/entity/teacher/EvaTeacherEntity.xml" />
<sqlMap resource="com/wstudy/core/entity/StudentEntity.xml" />

<sqlMap resource="test/ibatis/Student.xml" />

<sqlMap resource="com/wstudy/questions/entity/ComQuesAnsEntity.xml" />
<sqlMap resource="com/wstudy/questions/entity/ComQuesEntity.xml" />
<sqlMap resource="com/wstudy/questions/entity/TypicalQuesEntity.xml" />

解决方案

你文件应该没贴全吧,sql-map-config.xml文件里头 提前结束了,所以才报SAX解析XML异常。

时间: 2024-12-03 17:04:44

ibatis-spring+iBatis的xml解析问题的相关文章

死磕Spring系列之三,XML解析相关

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dba10g.blog.51cto.com/764602/1728020 通过第2章的介绍,应该知道Spring如何从XML一步步解析成BD对象并注册到容器中,这一过程有个概要认识了. 接下来开始详细分析与XML相关的那些事. 首先看一下使用的XML文档. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

spring+ibatis的dao接口 能使用内部类吗?

问题描述 spring+ibatis的dao接口 能使用内部类吗? spring+ibatis的dao接口 能使用内部类吗? spring扫描xml加载的 要怎么配置? 现在加载不到namespace指定的内部类 public interface MissionTypeMatterMapper { int deleteByPrimaryKey(Integer mission_matter_id); void insert(MissionTypeMatter record); List<Missi

用JSF+Spring+IBatis搭建一个简单框架

web.xml:关键是插入Spring的监听 <listener> <listener-class> org.apache.myfaces.webapp.StartupServletContextListener </listener-class> </listener> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener

spring+ibatis 数据库修改数据不成功的问题

问题描述 spring+ibatis 数据库修改数据不成功的问题 工程中调用dao执行数据表修改,调用方法如下: sqlmap描述如下图: 最后编译通过,发布到tomcat后运行,浏览器显示异常,异常描述如下: 求大神解答这是什么情况,该如何解决? 解决方案 你的传入的参数parameterType怎么不在sqlmap的xml中配置呢 解决方案二: 谢谢楼上提醒,小白一个,不知道iabtis入参只能有一个,如果有多个参数必须放入map中,现在问题解决了,谢谢提醒! 解决方案三: 谢谢楼上提醒,小

spring+ibatis tomcat启动出现get/set方法有关问题

问题描述 spring+ibatis tomcat启动出现get/set方法有关问题 我在spring+ibatis整合是出现了一下问题,希望能得到各个大神的指导 我的spring出错位置配置如下: <property name="configLocations" value="classpath*:sql/*_sql.xml"/> <property name="dataSource" ref="myDataSour

spring事务错误-spring+ibatis 事务错误

问题描述 spring+ibatis 事务错误 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'studentdao' defined in URL [file:/E:/资料/apache-tomcat-6.0.29/webapps/firstibatis/WEB-INF/classes/spring/applicationContext-jdbc.xml]: Erro

求解:关于struts1+spring+ibatis整合的问题

问题描述 struts1+spring+ibatis整合,都配置好了,可是老报错说找不到方法struts1的配置<action name="timePlanForm" path="/TimePlan"type="org.springframework.web.struts.DelegatingActionProxy" scope="request"parameter="cmd"><forw

Struts2+spring+ibatis集成配置

问题描述 struts2+spring+ibatis如何进行集成配置,那位大虾能把集成步骤及配置贴出来..小弟感激不尽 解决方案 解决方案二:这个只能你自己去找资料按照上面的一步步做如果报错了再来找方法告诉你怎么配也是肯定会报错的就算是源码给你可能也要报错解决方案三:每一个框架的搭建方式都一样,提醒你一点可能会出错的地方:struts和spring整合需要一个jar包:struts-spring-plugin-2.1.1.0.jar解决方案四:struts1.2metoo解决方案五:哈,已经解决

急求spring+ibatis处理clob类型数据解决方案(奉全分)

问题描述 由于客户提出系统升级,要求某些功能支持>4000字节字符,所以现有的表结构不能满足需求,要修改成支持更大数据的clob类型.我们系统是spring+ibatis架构,在网上找了很多资料,spring+ibatis能够对clob数据类型有良好的支持.分三步实现:1.oracle支持,在dataAccessContext.xml中添加如下配置:<!--clob字段处理配置开始--><beanid="nativeJdbcExtractor"class=&qu