2010-11-20 20 views
7

resorte xml:use spring mvc3 @ResponseBody tenía 415 Tipo de soporte no soportado ¿por qué?

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> 
    <property name="mediaTypes"> 
     <map> 
      <entry key="atom" value="application/atom+xml" /> 
      <entry key="html" value="text/html" /> 
      <entry key="json" value="application/json" /> 
     </map> 
    </property> 
    <property name="viewResolvers"> 
     <list> 
      <bean class="org.springframework.web.servlet.view.BeanNameViewResolver" /> 
      <bean 
       class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
       <property name="prefix" value="/WEB-INF/views/" /> 
       <property name="suffix" value=".jsp" /> 
      </bean> 
     </list> 
    </property> 
    <property name="defaultViews"> 
     <list> 
      <bean 
       class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" /> 
     </list> 
    </property> 
</bean> 

<bean id="viewResolver" 
    class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix" value="/WEB-INF/views/" /> 
    <property name="suffix" value=".jsp" /> 
</bean> 

<mvc:annotation-driven /> 

<context:annotation-config /> 

<context:component-scan base-package="org.lxh"></context:component-scan> 

y código es:

@RequestMapping(value = "/2wt/test.do",method=RequestMethod.POST) 
public @ResponseBody 
Map<String, ? extends Object> create(
     @RequestBody WtStandartype wtStandartype) { 
    System.out.println(wtStandartype.getId() + "--------"); 
    return Collections.singletonMap("id", wtStandartype.getId()); 

} 

javascript es:

jQuery.ajax({ 
       'type': 'POST', 
       'url': '/2wt/test.do',//'WtStandardTypeList.do?addto=updb', 
       'contentType': 'application/json', 
       'data': JSON.stringify(jsonuserinfo), 
       'dataType': 'json', 
       'error':function(){ 
        alert(222); 
       }, 
       'success': function(){ 
        alert(33333); 
       } 
      }); 

web.xml es:

<?xml version="1.0"?> 
    <web-app> 
<display-name>jbpm</display-name> 

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>classpath:config/spring/applicationContext.xml 
    </param-value> 
    <description>Spring config file locations</description> 
</context-param> 


<listener> 
    <listener-class>com.gzgi.framework.context.StartupListener</listener-class> 
</listener> 

<listener> 
    <listener-class>com.gzgi.framework.startup.ShutdownListener</listener-class> 
</listener> 

<listener> 
    <listener-class>com.gzgi.framework.context.UserOnlineListener</listener-class> 
</listener> 

<listener> 
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> 
</listener> 

<listener> 
    <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class> 
</listener> 

<filter> 
    <filter-name>EncodingFilter</filter-name> 
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter 
    </filter-class> 
    <init-param> 
     <param-name>encoding</param-name> 
     <param-value>UTF-8</param-value> 
    </init-param> 
    <init-param> 
     <param-name>forceEncoding</param-name> 
     <param-value>true</param-value> 
    </init-param> 
</filter> 

<filter> 
    <filter-name>compressionFilter</filter-name> 
    <filter-class>com.gzgi.framework.web.filter.GZIPFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>EncodingFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

<filter-mapping> 
    <filter-name>compressionFilter</filter-name> 
    <url-pattern>*.css</url-pattern> 
</filter-mapping> 
<filter-mapping> 
    <filter-name>compressionFilter</filter-name> 
    <url-pattern>*.js</url-pattern> 
</filter-mapping> 
<filter-mapping> 
    <filter-name>compressionFilter</filter-name> 
    <url-pattern>*.html</url-pattern> 
</filter-mapping> 

<servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class>com.gzgi.framework.web.SpringDispatcherServlet</servlet-class> 
    <load-on-startup>5</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>*.do</url-pattern> 
</servlet-mapping> 

<servlet> 
    <servlet-name>resteasy</servlet-name> 
    <servlet-class>com.gzgi.framework.web.SpringDispatcherServlet</servlet-class> 
    <load-on-startup>6</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>resteasy</servlet-name> 
    <url-pattern>/rs/*</url-pattern> 
</servlet-mapping> 


<session-config> 
    <session-timeout>3600</session-timeout> 
</session-config> 


</web-app> 

I Ajax de someter la vista, pero Firefox es 415 medios de impresión no Tipo

lib tenía Jackson mapeador-ASL-1.5.6.jar Jackson-core-ASL-1.5.6.jar versión de la primavera es 3.03

¿Por qué no enviar el éxito?

+0

Agregué un web.xml pero no encontré este error ¿dónde está – EdwardLau

+1

¿Finalmente encontró la solución al problema? Estoy enfrentando exactamente el mismo problema. –

+0

¿Alguien ha resuelto este problema? Esto me ha hecho tirar de mi cabello todo el día. – mobilekid

Respuesta

2

Intente poner un Accept explícito Encabezado de: application/json.

La aplicación de resorte de muestra mvc-showcase tiene un ejemplo de convertidores de mensaje que lee json y xml en la pantalla con JQuery para solicitud de Ajax, puede probar y usar ese ejemplo para modelar su código.

+0

No funcionó para mí. ¿Alguna configuración del lado del servidor también? – Filipiz

+0

@BijuKunjummen: Creo que ese encabezado debe llamarse 'Aceptar tipo'. –

+0

podría ayudarme en thisnhttp: //stackoverflow.com/questions/18102452/spring-mvc-415-unsupported-media-type/18103943? Noredirect = 1 # comment26502825_18103943 – jackyesind

Cuestiones relacionadas