Spring MVC POST @RequestBody не привязывается к строке JSON в запросе http - PullRequest
1 голос
/ 05 июля 2011

это моя подпись метода POST моего контроллера Spring MVC

@RequestMapping(value="/createNewGame", method=RequestMethod.POST)
       public ModelAndView createNewGame(@RequestParam(value="phoneNumber") String param,@RequestBody final SampleDTO sampleDTO) {
        Map model2 = new HashMap();
           model2.put("firstname", "Peter");
           model2.put("secondname", "Schmitt");

           return new ModelAndView("jsonView", model2);
     }

Вместо этого это определение класса SampleDTO:

public class SampleDTO implements Serializable{

    private String value;

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }
}

Я не могу выполнить запрос для этого метода. У меня есть эта ошибка от клиента:

org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.supports(Ljava/lang/Class;)Z

после выполнения этого запроса POST с приложением RestClient со следующими параметрами:

http://localhost:8080/SpringExample5/createNewGame.json?phoneNumber=6   (POST)

Content-Type application/json  (Header attribute)

{ "value": "a" }      (Body)

Это также конфигурация Spring в моем веб-приложении:

<bean name="/gameController.json" 
          class="com.alu.server.games.acquisition.controllers.GameController"/>   


<bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
<bean id="jsonView" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"/>

<bean id="jsonHttpMessageConverter"
    class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" >
    <property name="objectMapper">
            <ref bean="JacksonObjectMapper" />
       </property>
</bean>

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

<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
    <property name="objectMapper">
         <ref bean="JacksonObjectMapper" />
    </property>
</bean>

<bean id="JacksonObjectMapper" class="org.codehaus.jackson.map.ObjectMapper" />

Кто-то может мне помочь, чтобы найти проблему? Заранее спасибо!

1 Ответ

0 голосов
/ 05 июня 2013

В настройке, которую я использовал, я указал тип носителя как «application / json» как в аннотации веб-службы, так и в конфигурации XML для конвертера сообщений json.
Пожалуйста, ознакомьтесь с моим FAQ по этому вопросу здесь для получения более подробной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...