2012-04-08 12 views
8

He visto que ya se han presentado algunas instancias de este problema. Sin embargo, confío en que cumplo los criterios que se han esbozado en esas soluciones. es decir, estoy bastante seguro de que tengo los archivos jar deseados en mi ruta de clases + mis direcciones de ubicación de esquemas se ven en orden.Spring AOP: "no se puede encontrar ninguna declaración para el elemento 'aop: config'"

Una solución mencionó que el problema puede deberse a tener otro analizador XML en la ruta de clase. Tengo dom4j en mi classpath pero lo he quitado para probar, y el problema persiste.

Aquí es mi ruta de clases:

<?xml version="1.0" encoding="UTF-8"?> 
<classpath> 
    <classpathentry kind="src" path="src"/> 
    <classpathentry kind="src" path="test"/> 
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/mysql-connector-java-5.1.18-bin.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/jaxen-1.1.3.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/org.springframework.aop-3.1.0.RC1.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/org.springframework.asm-3.1.0.RC1.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/org.springframework.aspects-3.1.0.RC1.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/org.springframework.beans-3.1.0.RC1.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/org.springframework.context.support-3.1.0.RC1.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/org.springframework.context-3.1.0.RC1.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/org.springframework.core-3.1.0.RC1.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/org.springframework.expression-3.1.0.RC1.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/org.springframework.instrument.tomcat-3.1.0.RC1.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/org.springframework.instrument-3.1.0.RC1.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/org.springframework.jdbc-3.1.0.RC1.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/org.springframework.jms-3.1.0.RC1.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/org.springframework.orm-3.1.0.RC1.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/org.springframework.oxm-3.1.0.RC1.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/org.springframework.test-3.1.0.RC1.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/org.springframework.transaction-3.1.0.RC1.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/org.springframework.web.portlet-3.1.0.RC1.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/org.springframework.web.servlet-3.1.0.RC1.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/org.springframework.web.struts-3.1.0.RC1.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/org.springframework.web-3.1.0.RC1.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/log4j-1.2.16.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/commons-logging-1.1.1.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/spring-mvc-airline/WebContent/WEB-INF/lib/junit-4.9b2.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/mybatis-3.1.0-SNAPSHOT.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/mybatis-spring-1.1.0.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/lambdaj-2.4.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/cglib-2.2.2.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/aspectj-1.6.12.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/aspectjrt-1.5.4.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/dom4j-1.6.1.jar"/> 
    <classpathentry kind="lib" path="C:/Users/user/workspace/rugby-project/lib/spring-aop-3.0.3.RELEASE.jar"/> 
    <classpathentry kind="output" path="bin"/> 
</classpath> 

Y es mi xml aquí:

<?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" 
    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/aop 
     http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
     http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 

    <bean id="timer" class="ie.ucd.dec.al.rugby.aop.Timer" /> 

    <aop:config> 
     <aop:aspect ref="timer"> 
      <aop:pointcut id="migrationManager_migrate" 
       expression="execution(* ie.ucd.dec.al.rugby.data.migrate.MigrationManager.migrateAllXmlFilesInDirectory())" /> 

      <aop:around pointcut-ref="migrationManager_migrate" 
       method="timeJob()" /> 
     </aop:aspect> 

    </aop:config> 

</beans> 

Por último, aquí está mi StackTrace:

Exception in thread "main" 
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 15 in XML document from class path resource [spring-aop.xml] is invalid; nested exception is 
org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'aop:config'. 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:243) 
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127) 
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93) 
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131) 
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:522) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:436) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93) 
    at ie.ucd.dec.al.rugby.data.migrate.MigrationRunner.main(MigrationRunner.java:10) 
Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'aop:config'. 
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) 
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(UnknownSource) 
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) 
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source) 
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source) 
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source) 
    at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75) 
    at 

espero que alguien pueda ayudar.

Gracias!

+0

he reformateado su StackTrace. Por favor, asegúrese de hacerlo usted mismo la próxima vez. :-) – kriegaex

Respuesta

24

El orden de los elementos xsi:schemaLocation está mal, cada URI de espacio debe ser seguido por su ubicación XSD:

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   
    http://www.springframework.org/schema/aop   
    http://www.springframework.org/schema/aop/spring-aop-3.0.xsd" 
+0

¡Gracias! la casilla "aprender algo hoy" está marcada. – HellishHeat

+4

Soy un poco más consciente de Spring en estos días, y me gustaría aconsejar a las personas que utilicen la pestaña 'Espacios de nombres' dentro de STS (perspectiva Spring) al agregar espacios de nombres. Elimina el potencial de tales errores de novato. – HellishHeat

+0

Gracias @HellishHeat, para pro tip – Kaunteya

Cuestiones relacionadas