Cvc-complex-type.2.4.c: The corresponding template is strict, but for the element 'tx: annotation-driven'

If I do not insert xmlns:tx="http://www.springframework.org/schema/tx" , then there is no problem. However, if I insert the text, I get cvc-complex-type.2.4.c: The corresponding template is strict, but no declarations for the element "tx: annotation-driven" were found.

 <beans xmlns:tx="http://www.springframework.org/schema/tx" xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd"> <context:annotation-config /> <tx:annotation-driven /> <context:component-scan base-package="ne.projl.server" /> <bean name="security.securityInfo" class="org.geomajas.security.SecurityInfo"> <property name="loopAllServices" value="false" /> <property name="securityServices"> <list> <bean class="org.geomajas.security.allowall.AllowAllSecurityService" /> </list> </property> </bean> <bean name="puregwt-app" class="org.geomajas.configuration.client.ClientApplicationInfo"> <property name="maps"> <list> <ref bean="mapOsm" /> <!-- <ref bean="mapWms" /> --> <!-- <ref bean="mapLegend" /> --> <!-- <ref bean="mapLayerVisibility" /> --> <!-- <ref bean="mapCountries" /> --> <!-- <ref bean="mapEmpty" /> --> <!-- <ref bean="mapPrinting" /> --> </list> </property> </bean> <bean class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean" id="entityManagerFactory"> <property name="persistenceUnitName" value="MyPUnit" /> </bean> <bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager"> <property name="entityManagerFactory" ref="entityManagerFactory" /> </bean> </beans> 

I also tried changing <tx:annotation-driven /> as follows: <tx:annotation-driven transaction-manager="transactionManager"/>

+4
source share
5 answers

The schema location for tx is never contained in the <beans> . Notice the change in the last line of the provided configuration. The config also mixes Spring 2.0 with 2.5, I'm not sure if this is desirable, but I wanted you to know about it.

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

I managed to solve this problem by adding these 2 declarations inside xsi: schemaLocation. http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
add above it worked for me

+1
source

I need to change the contents of the string to remove the error -

 http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/context 

Only exchange changed my mistake - below

 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd 
+1
source

This works for me with Spring 3.X + Hibernate + MySQL + Maven

servlet-context.xml

 <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" 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-2.5.xsd" xmlns:tx="http://www.springframework.org/schema/tx"> <!-- DispatcherServlet Context: defines this servlet 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="/WEB-INF/views/" /> <beans:property name="suffix" value=".jsp" /> </beans:bean> <context:annotation-config /> <beans:bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <beans:property name="dataSource" ref="dataSource" /> <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:property name="packagesToScan" value="com.hb.test.modal" /> </beans:bean> <beans:bean id="dataSource" name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <beans:property name="driverClassName" value="com.mysql.jdbc.Driver" /> <beans:property name="url" value="jdbc:mysql://localhost:3306/mydb" /> <beans:property name="username" value="root" /> <beans:property name="password" value="root" /> </beans:bean> <beans:bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <beans:property name="sessionFactory" ref="sessionFactory" /> </beans:bean> <tx:annotation-driven transaction-manager="transactionManager" /> <context:component-scan base-package="com.hb.test" /> </beans:beans> 

pom.xml

  <!--Hibernate --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>3.6.0.Final</version> </dependency> <dependency> <groupId>javax.persistence</groupId> <artifactId>persistence-api</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>3.0.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.0.0.RELEASE</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.32</version> </dependency> <!-- AOP dependency --> <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>2.2</version> </dependency> <dependency> <groupId>javassist</groupId> <artifactId>javassist</artifactId> <version>3.12.1.GA</version> </dependency> 
0
source

When we deal with errors in the xml file, we should notice that there are errors for eclipse, and if we cut the line with the error and then insert it again, the errors can disappear like magic. I hit this eclipse error several times.

0
source

Source: https://habr.com/ru/post/987604/


All Articles