type que estricto cvc componentscan complex comodín coincidente anotaciones java xml spring-mvc annotations spring-3

java - que - no se puede encontrar ninguna declaración para el elemento ''mvc: anotado por la anotación''



anotaciones spring (2)

Agregue los siguientes esquemas a su declaración schemaLocation en la parte superior:

http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd

Tengo el requisito de devolver datos JSON / XML desde mi controlador. Por lo que encontré, necesitaba @ResponseBody en mi método y para eso necesito <mvc:annotation-driven> enabled. ¡He probado todo tipo de RnD pero todavía estoy atascado! :(

Aparentemente mi problema está en mi archivo servlet.xml (¡el esquema no está siendo validado!) Estoy usando Spring 3.1.1 y lo he puesto explícitamente en spring-mvc-3.1.1.jar en mi classpath.

Aquí está mi archivo de contexto de servlet sample-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:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/mvc-3.1 http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:component-scan base-package="com.sample.controller"/> <mvc:annotation-driven/> <!--Use JAXB OXM marshaller to marshall/unmarshall following class--> <bean class="org.springframework.web.servlet.view.BeanNameViewResolver" /> <bean id="xmlViewer" class="org.springframework.web.servlet.view.xml.MarshallingView"> <constructor-arg> <bean class="org.springframework.oxm.jaxb.Jaxb2Marshaller"> <property name="classesToBeBound"> <list> <value>com.sample.model.SampleClass</value> </list> </property> </bean> </constructor-arg> </bean> <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> <property name="viewResolvers"> <list> <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> </list> </property> </bean>

Mi clase de controlador se ve así:

@Controller public class XmlController { @RequestMapping(value="/getXml",method = RequestMethod.POST) public @ResponseBody AssociateDetail getXml(){ System.out.println("inside xml controller....."); AssociateDetail assoBean=null; try{ AssociateService add=new AssociateService(); assoBean=add.selectAssociateBean(); }catch(Exception e){ e.printStackTrace(); } return assoBean; } }

Ahora el problema es <mvc:annotation-driven /> da error:

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''.

Y he intentado todas las soluciones alternativas sugeridas en este sitio y más allá. He actualizado mis espacios de nombres de esquema, usando Spring 3.1.1 y @ResponseBody .


Como el error sugiere que hay algo mal con la declaración del esquema. Usted no tiene las xsd declaradas. Use esto en su lugar.

<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:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">