2010-11-20 28 views
7

mùa xuân xml:sử dụng spring mvc3 @ResponseBody có 415 Loại phương tiện không được hỗ trợ tại sao?

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

đang là:

@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 là:

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 là:

<?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> 

Tôi ajax nộp từ nhưng firefox xem là 415 không được hỗ trợ Media Type

lib có jackson-mapper-asl-1.5.6.jar jackson-core-asl-1.5.6.jar phiên bản mùa xuân là 3.03

Tại sao bạn không gửi thành công?

+0

Tôi thêm tệp web.xml nhưng tôi không tìm thấy lỗi này ở đâu là – EdwardLau

+1

Bạn cuối cùng đã tìm được giải pháp cho sự cố chưa? Tôi đang đối mặt chính xác cùng một vấn đề. –

+0

Có ai đã giải quyết vấn đề này không? Điều này đã làm cho tôi kéo tóc của tôi cả ngày nay. – mobilekid

Trả lời

2

Thử đặt rõ ràng Accept Tiêu đề: application/json.

Ứng dụng Spring mẫu mvc-showcase mẫu có trình biến đổi tin nhắn đọc json và xml vào màn hình với yêu cầu JQuery cho Ajax, bạn có thể thử và sử dụng ví dụ đó để lập mô hình mã của bạn.

+0

Đã không làm việc cho tôi. Bất kỳ cấu hình phía máy chủ nào cũng vậy? – Filipiz

+0

@BijuKunjummen: Tôi nghĩ, tiêu đề đó nên được gọi là 'Chấp nhận kiểu'. –

+0

u có thể giúp tôi về điều nàynhttp: //stackoverflow.com/questions/18102452/spring-mvc-415-unsupported-media-type/18103943? Noredirect = 1 # comment26502825_18103943 – jackyesind

Các vấn đề liên quan