java - cvc-complex-type.2.4.c : The matching wildcard is strict,,但找不到元素 'tx:annotation-driven' 的声明 - Spring 4.3.7

标签 java spring hibernate spring-mvc

我正在尝试配置 Spring MVC + Hibernate,但是当我在 servlet-context.xml 文件上使用此“tx:annotation-driven”时,我收到标题中描述的错误。

我的servlet上下文文件如下。 我使用的是Spring 4.3.7

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/tx/spring-tx-4.3.xsd" >

<!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->

<!-- Enables the Spring MVC @Controller programming model -->
<annotation-driven />

<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
<resources mapping="/resources/**" location="/resources/" />

<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <beans:property name="prefix" value="/views/" />
    <beans:property name="suffix" value=".jsp" />
</beans:bean>

<context:component-scan base-package="com.nitin.SpringDemo.controller" />

<beans:bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <beans:property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>    
    <beans:property name="url" value="jdbc:oracle:thin:@localhost:1521:ORCL" />  
    <beans:property name="username" value="hr" /> 
    <beans:property name="password" value="hr" />  
</beans:bean>  



<!-- Hibernate 4 SessionFactory Bean definition -->
<beans:bean id="hibernate4AnnotatedSessionFactory"
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <beans:property name="dataSource" ref="dataSource" />
    <beans:property name="annotatedClasses">
        <beans:list>
            <beans:value>com.nitin.SpringDemo.controller</beans:value>
        </beans:list>
    </beans:property>
    <beans:property name="hibernateProperties">
        <beans:props>
            <beans:prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect
            </beans:prop>
            <beans:prop key="hibernate.show_sql">true</beans:prop>
        </beans:props>
    </beans:property>
</beans:bean>

<beans:bean id="ServiceInterface" class="com.nitin.SpringDemo.controller.SpringDao">
    <beans:property name="sessionFactory" ref="hibernate4AnnotatedSessionFactory" />
</beans:bean>

<context:component-scan base-package="com.nitin.SpringDemo.controller" />

<tx:annotation-driven transaction-manager="transactionManager"/>

<beans:bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <beans:property name="sessionFactory" ref="hibernate4AnnotatedSessionFactory" />
</beans:bean>

我是这方面的新手,我正在尝试学习,但是这个配置现在花费了很多时间,真的很沮丧,如果大家能帮忙,请提供帮助。

最佳答案

xsi:schemaLocation应包含 XML 文件处理器的提示,说明从何处物理获取将用于验证 XML 的 xsd 文件。已满

with pairs of URI references (one for the namespace name, and one for a hint as to the location of a schema document defining names for that namespace name)

引文来自https://www.w3.org/TR/xmlschema-1/#schema-loc

所以xsi:schemaLocation应包含对 <schema-URI, physical-location-URI> 。在你的情况下,http://www.springframework.org/schema/tx/spring-tx-4.3.xsd未配对。

该属性应如下所示

xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx 
http://www.springframework.org/schema/tx/spring-tx-4.3.xsd"

(请注意,我插入 http://www.springframework.org/schema/tx 作为倒数第二个组件)。

关于java - cvc-complex-type.2.4.c : The matching wildcard is strict,,但找不到元素 'tx:annotation-driven' 的声明 - Spring 4.3.7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45650805/

相关文章:

hibernate 搜索 : Share index between applications

java - 未初始化的局部变量 - 无错误 : Java

java - 保存数组中两个数字之间的奇数

Spring MVC 获取WEB-INF下的文件无需请求

java.lang.ArrayIndexOutOfBoundsException at oracle.jdbc.driver.T4CTTIrxd.readBitVector(T4CTTIrxd.java :135)

java - JPA(Hibernate)中注释字段和方法之间的区别?

java - 我在 ListView 中有一个自定义单元格。如何使其在触摸时突出显示?

java - 函数 endsWith 中的 JSTL 错误?

java - 找不到当前线程的 session

Java-设置 datetime17 :30 if the current time is before 17:00