2011-08-19 15 views
9

La línea 13 en el documento XML del recurso de ruta de clase [ApplicationContextAOP.xml] no es válida; la excepción anidada es org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: el comodín coincidente es estricto, pero no se puede encontrar ninguna declaración para el elemento 'aop: config'.Spring AOP El comodín coincidente es estricto, pero no se puede encontrar una declaración para el elemento 'aop: config'

<?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:aop="http://www.springframework.org/schema/aop" 
xmlns:context="http://www.springframework.org/schema/context" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 
<bean id="audience" class="com.idol.Audience" /> 

<aop:config> 
<aop:aspect ref="audience"> 

    <!-- Before performance -->  

    <aop:before pointcut="execution(*com.idol.performers.Performer.perform(..))" 
    method="takeSeats"/> 

    <aop:before pointcut="execution(*com.idol.performers.Performer.perform(..))" 
    method="turnOffCellPhones" /> 

    <!-- After performance --> 

    <aop:after-returning pointcut="execution(*com.idol.performers.Performer.perform(..))" 
    method="applaud" /> 

    <!-- After bad performance(exception thrown) -->  

    <aop:after-throwing pointcut="execution(*com.idol.performers.Performer.perform(..))" 
    method="demandRefund" /> 

</aop:aspect> 
</aop:config> 
<bean id="poeticDuke" class="com.idol.performers.PoeticJuggler"> 
<constructor-arg value = "15" /> 
<constructor-arg ref = "sonnet29" /> 
</bean> 

</beans> 

que he visto de error similar y estoy bastante seguro de que mi ruta de clase tiene org.springframework.aop-3.1.0.M2.jar

Podría decirme por favor qué am ¿Me pierdo?

+0

Muchas gracias por su pregunta. Estaba enfrentando el mismo problema, pero en mi caso el problema era que me faltaba 'spring-aop.jar' en el classpath; eso era lo que me estaba perdiendo. Gracias por traer eso a mi atención. – manuelvigarcia

Respuesta

22

es necesario agregar a su schemaLocation:

xsi:schemaLocation=" 
... 
http://www.springframework.org/schema/aop 
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
... 
" 
+0

Ahora obtengo este :-(Excepción en el hilo "main" org.springframework.beans.factory.BeanDefinitionStoreException: excepción inesperada al analizar el documento XML del recurso de ruta de clase [ApplicationContextAOP.xml]; la excepción anidada es java.lang.NoClassDefFoundError: org/aopalliance/aop/Advice – Aubergine

+3

Te falta el [Aopalliance jar] (http://search.maven.org/#artifactdetails|aopalliance|aopalliance|1.0|jar). –

+1

@Aubergine: debes aceptar esta respuesta como el respuesta correcta y hacer una nueva pregunta. –

0

Hemos recibido el mensaje de error similar para el elemento tx:advice y lo consiguió resolverse mediante la sustitución de los org.springframework.*-3.0.0.M3.jar s con org.springframework.*-3.1.2.RELEASE.jar s donde * representa los módulos de tarro. Por lo tanto, intente obtener una versión estable para solucionar los problemas similares.

0
 
Adding one more possibility to the earlier provided answers : 

Wrong version of schemaLocation: 
http://www.springframework.org/schema/aop/ 
    http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 

Correct Version: 
http://www.springframework.org/schema/aop 
    http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 

REASON: The extra "/" after "schema/aop" 
Cuestiones relacionadas