我正在尝试配置 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/