2010-11-20 22 views
7

ばねXML:spring mvc3 @ResponseBodyには415のサポートされていないメディアタイプが使用されました。なぜですか?

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

コードある:

@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()); 

} 

ジャバスクリプトである:

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がある:

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

私はAJAXのFirefoxビューけどから提出は415サポートされていないメディアタイプ

libには、ジャクソン・マッパー-ASL-1.5.6.jarジャクソンコア-ASL-1.5.6.jar春のバージョンを持っていたありますis 3.03

なぜ成功しないのですか?

+0

web.xmlを追加しましたが、このエラーは見つかりませんでした。 – EdwardLau

+1

最終的に問題の解決策を見つけましたか?私は全く同じ問題に直面しています。 –

+0

誰かがこの問題を解決しましたか?これで私は一日中髪を引っ張ってきました。 – mobilekid

答えて

2

Acceptのヘッダー:application/jsonを明示的に入力してください。

サンプルスプリングアプリケーションには、jsonとxmlをAjax要求のJQueryで画面に読み込むメッセージコンバータの例があります。この例を試してみると、コードをモデル化できます。

+0

私のために働かなかった。任意のサーバー側の構成ですか? – Filipiz

+0

@BijuKunjummen:私はそのヘッダを「Accept-type」と呼ぶべきだと思います。 –

+0

あなたはthisnhttpで私を助けることができます://stackoverflow.com/questions/18102452/spring-mvc-415-unsupported-media-type/18103943?noredirect = 1#comment26502825_18103943 – jackyesind

関連する問題