java - modelo - spring mvc configuration
Spring v3 no se puede encontrar ninguna declaraciĆ³n para el elemento ''mvc: resources'' (5)
Actualmente ejecutándose
Tomcat: v6
Spring Tools Suite: v2.7.2
Spring Framework: spring-webmvc-3.0.5
Servlet XML
<?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:mvc="http://www.springframework.org/schema/mvc"
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/mvc/spring-mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<mvc:annotation-driven />
<mvc:resources mapping="/resources/**" location="/resources" />
<context:component-scan base-package="com.app.mvc" />
</beans>
código parcial web.xml
<servlet-mapping>
<servlet-name>duckapp</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
Propósito del servlet
web.xml asigna todas las URL al servlet con la excepción de mvc: resources asignando archivos estáticos.
Loco
cvc-complex-type.2.4.c: el comodín coincidente es estricto, pero no se puede encontrar ninguna declaración para el elemento ''mvc: anotado por anotación''. app-servlet.xml / app / www / WEB-INF
cvc-complex-type.2.4.c: el comodín coincidente es estricto, pero no se puede encontrar ninguna declaración para el elemento ''mvc: resources''. app-servlet.xml / app / www / WEB-INF
Problemas conocidos
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd no contiene el recurso del elemento
Si se reemplaza por http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd todavía no funciona y puede que no funcione según los archivos jar de la primavera 3.05.
mvc: los recursos aparecieron en la primavera v3.0.4, pero no tiene nueva xsd
Pregunta
¿Cómo puedo solucionar los errores de compilación para que mvc: resources funcione correctamente?
He estado cavando alrededor de 2 horas para esto, todavía no hay una respuesta sólida ...
Creo que su mapeo schemaLocation es incorrecto. El espacio de nombre se especifica como:
xmlns:mvc="http://www.springframework.org/schema/mvc"
que es correcto, creo, pero en el schemaLocation tienes
http://www.springframework.org/schema/mvc/spring-mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
Entonces, si cambia la primera línea de la asignación schemaLocation a su espacio de nombres mvc, debería funcionar bien.
Cuando utilizo las URL de los espacios de nombres de Spring, normalmente no uso la información de la versión y eso funciona bastante bien la mayor parte del tiempo. Puede intentar la URL del espacio de nombres
http://www.springframework.org/schema/mvc/spring-mvc.xsd
en lugar de
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
En su contexto de primavera, la URL del espacio de nombres xml mvc debe coincidir con la url en schemaLocation. Algo como esto:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
Esta es una declaración de espacio de nombres XML estándar. La URL del espacio de nombres es una especie de identificación única, que luego se asigna a la ubicación del esquema real en xsi: schemaLocation.
Estaba obteniendo el mismo error. La causa fue la fuente de dependencia de Maven -webmvc. Incluí la dependencia a continuación y comenzó a funcionar.
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
Me he inscrito para el curso de primavera en udemy. Seguí cada paso que mi instructor me enseñó a hacer. Por lo tanto, si está utilizando spring mvc e hibernate, puede encontrar este error. No se pudo leer el documento de esquema '' http://www.springframework.org/schema/tx/spring-tx.xsd '', etc. para:
<mvc:annotation-driven/> and <tx:annotation-driven transaction-manager="myTransactionManager" /> elements
en mi archivo de configuración de primavera tuve estas dos URL
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
en xsi: schemaLocation, que reemplacé con
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.2.xsd
en realidad visité estos dos sitios http://www.springframework.org/schema/mvc/ y http://www.springframework.org/schema/tx/ y acabo de agregar la última versión de spring-mvc y spring-tx ie , spring-mvc-4.2.xsd y spring-tx-4.2.xsd
Entonces, en mi opinión, especificar la versión no es explícitamente una buena práctica. Me funcionó, espero que esto también funcione para ti. Gracias.