cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'tx:annotation-driven'

spring, spring-mvc

Solution

The schema location for tx is never provided in the `<beans>` tag. Notice the change in the last line of the provided configuration. Also the config mixes Spring 2.0 with 2.5, I'm not sure if this is desired, but I wanted to make you aware this.

<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">

Problem

If i do not paste `xmlns:tx="http://www.springframework.org/schema/tx"` then there are no problems. However if i do insert the text i get an cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'tx:annotation-driven' error. ``` <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 have also tried to modify `<tx:annotation-driven />` like so : `<tx:annotation-driven transaction-manager="transactionManager"/>`

Original source