mvc modelo formulario for dispatcherservlet current java xml spring servlets schema

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

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.