HttpMediaTypeNotAcceptableException mit Feder 3.1.2 und Jackson 1.9.11

~R

Ich versuche zu tun, Spring MVC REST JSON-Kanal mit automatischer Umstellung auf JSON mit Jackson. Obwohl ich mache alles so wie empfohlen, in anderen StackOverflow-Fragen, ich bin immer HttpMediaTypeNotAcceptableException und meine Bohnen/Listen werden nicht in JSON. Ich bin mit den code auf Steg.

Habe ich ja befolgt die Anweisung von UTF-8-Codierung problem in Spring MVC, Spring 3.0 machen JSON-response mit jackson message converter und Jackson Anmerkungen ignoriert im Frühjahr, aber keiner von Ihnen ermöglicht es mir, zu senden, weder die Bohne, noch eine List<String>. Beide geben Sie den HTTP-status 406. Nur die Methode der Rückgabe-String erfolgreich mit HTTP 200.

Meine Methode ist:

@RequestMapping(value = "/list", produces = "text/plain; charset=utf-8")
public @ResponseBody List<String> getList() {
    return createList();
}

Frühjahr Datei:

<context:component-scan base-package="de.myapp.rest" />
<context:annotation-config />
<mvc:annotation-driven />

<bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="messageConverters">
        <list>
            <ref bean="jacksonMessageConverter" />
        </list>
    </property>
</bean> 

Hinzufügen dieser Abschnitt hilft auch nicht:

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver" p:order="1">
  <property name="mediaTypes">
    <map>
      <entry key="json" value="application/json"/>
    </map>
   </property>
  <property name="defaultViews">
    <list>
      <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"/>
    </list>
  </property>
</bean> 

Den Anfrage-HTTP-header wird erzeugt durch jQuery und sieht so aus:

Akzeptieren application/json, text/javascript, /; q=0.01
Accept-Encoding gzip, deflate
Accept-Language de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101
Firefox/18.0

Allerdings bekomme ich HTTP 406 mit HTML-Fehlermeldung angezeigt, und die folgenden Zeilen in der log-Datei:

Auflösen Ausnahme von handler [public de.myapp.rest.TestBean
de.myapp.rest.Test.getList()]:
org.springframework.web.HttpMediaTypeNotAcceptableException: Konnte nicht
annehmbare Darstellung

Die Frage ist also, was fehlt mir hier? Warum der jackson-Konverter ist nicht registriert/wie kann ich Debuggen? Ich bin mit den code per jetty:run. Aber es sollte nicht Materie, die seit dem Frühjahr ist application-server-unabhängig.

Schreibe einen Kommentar