“匹配通配符是严格的,但无法找到声明”错误和“读取架构失败”错误

时间:2014-06-12 07:50:36

标签: java xml spring spring-mvc xsd

我用弹簧和mybatis练习训练自己。

我从昨天开始尝试解决这两个错误:

1)

  

描述资源路径位置类型cvc-complex-type.2.4.c :.   匹配通配符是严格的,但是找不到声明   元件   '上下文:注解的配置&#39 ;. ApplicationContext.xml / Example / WebContent / WEB-INF行   14 XML问题

这些行:

<context:component-scan base-package="Controller" />
<context:component-scan base-package="service"/>
<context:component-scan base-package="test.dao.samp"/>
<context:component-scan base-package="test.model.samp"/>

和此:

2)

  

描述资源路径位置类型

     

schema_reference.4:无法读取架构文档&#39; http://www.springframework.org/schema/context/spring-context-4.0.xsd&#39;,   因为1)找不到文件; 2)文件不可能   读; 3)文档的根元素不是   。 ApplicationContext.xml / Exemple / WebContent / WEB-INF行   14 XML问题

     

schema_reference.4:无法读取架构文档   &#39; http://www.springframework.org/schema/tx/spring-tx-4.0.xsd&#39;,因为   1)找不到文件; 2)文件无法阅读; 3)   文档的根元素不是   。 ApplicationContext.xml / Exemple / WebContent / WEB-INF行   51 XML问题

这是我的ApplicationContext.xml

    <?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">

             <context:annotation-config/>


        <context:component-scan base-package="Controller" />
        <context:component-scan base-package="service"/>
        <context:component-scan base-package="test.dao.samp"/>
        <context:component-scan base-package="test.model.samp"/>

         <bean id='dataSource'
            class='org.springframework.jdbc.datasource.SimpleDriverDataSource'>
            <property name='driverClass' value='org.apache.derby.jdbc.EmbeddedDriver' />
            <property name='url'
                value='jdbc:derby:C:\Users\XXX\IBM\rationalsdp\workspace\.metadata\.plugins\com.ibm.datatools.db2.cloudscape.driver\SAMPLE;create=true' />
            <property name='username' value='admin' />
            <property name='password' value='admin' />
        </bean>

        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource" />
            <property name="configLocation" value="WEB-INF\psaIbatisConf.xml" />
        </bean>

        <bean id="sqlMapClient" class="org.mybatis.spring.SqlSessionTemplate">
            <constructor-arg ref="sqlSessionFactory" />
        </bean>

        <!-- TRANSACTION MANAGER -->
        <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
          <property name="dataSource" ref="dataSource"/>
        </bean>

        <!-- ANNOTATION DRIVEN TRANSACTIONS -->
        <tx:annotation-driven transaction-manager="transactionManager" />



</beans>

我是如何理解的,错误来自错误的xsd声明,但我检查了很多次。

我使用的罐子都是4.0.4版本。

我使用RAD,Websphere,使用myBatis生成器弹簧myBatis。

修改

我以这种方式更改了beans标记中的版本模式:

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:util="http://www.springframework.org/schema/util" 
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

第一次失误已经消失,但最后一次(第51行)仍然存在。

2 个答案:

答案 0 :(得分:0)

看看这个上下文的例子,也许可以帮到你。我使用相同的事务管理器。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jee="http://www.springframework.org/schema/jee"
    xmlns:util="http://www.springframework.org/schema/util" xmlns:mockito="http://www.mockito.org/spring/mockito"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.mockito.org/spring/mockito https://bitbucket.org/kubek2k/springockito/raw/tip/springockito/src/main/resources/spring/mockito.xsd
        http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">

    <context:annotation-config />
    <tx:annotation-driven/>
    <context:component-scan base-package="cat.base.gpt.logica" />

    <import resource="classpath:tip-appConfiguration.xml" />

    <bean id="gptServei" class="cat.base.gpt.logica.serveis.impl.ServeiGpt">
        <property name="serveiSubjecte" ref="serveiSubjecte"/>
        <property name="vwGptVBasicDAO" ref="vwGptVBasicDAO" />
        <property name="vwGptVExpMSDAO" ref="vwGptVExpMSDAO" />
        <property name="vwGptVObjectesBasicDAO" ref = "vwGptVObjectesBasicDAO"/>

        <!--
            Propietat per falicilitar el filtratge cat.base.gpt.multiens
            true:Recuperem tots els ens
            false: filtrem  per ens
        -->
        <property name="filtratgeEns" value="${cat.base.gpt.multiens}"/>

        <qualifier type="cat.base.gpt.domini.serveis.IServeiGpt" value="gptServei" />
    </bean>

    <bean id="transactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>

    <bean id="connexioJdbctemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
        <constructor-arg type="javax.sql.DataSource" ref="dataSource"/>
    </bean>

    <bean id="preparadorJdbctemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <constructor-arg type="javax.sql.DataSource" ref="dataSource"/>
    </bean>

    <bean id="vwGptVBasicDAO" class="cat.base.gpt.logica.dao.impl.VwGptVBasicDao">
        <property name="template" ref="connexioJdbctemplate" />
    </bean>

    <bean id="vwGptVExpMSDAO" class="cat.base.gpt.logica.dao.impl.VwGptExpMSDao">
        <property name="template" ref="connexioJdbctemplate" />
    </bean>

    <!-- DAO referent a objectes bàsics -->
    <bean id="vwGptVObjectesBasicDAO" class="cat.base.gpt.logica.dao.impl.VwGptObjecteBasicDao">
        <property name="template" ref="connexioJdbctemplate" />
    </bean>

    <bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${cat.base.gpt.driverClassName}" />
        <property name="url" value="${cat.base.gpt.url}" />
        <property name="username" value="${cat.base.gpt.username}"/>
        <property name="password" value="${cat.base.gpt.password}"/>
    </bean>

    <bean id="postprocess" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath*:cat/base/gpt/serveis/impl/logica.properties</value>

                <value>classpath*:entorn-servidor.properties</value>
            </list>
        </property>
        <property name="ignoreResourceNotFound" value="false" />
    </bean>

 </beans>

答案 1 :(得分:0)

我解决了导入spring-tx库的错误,正是spring-tx-4.0.4.RELEASE

我错误地检查了lib文件夹中是否有jar。