2014-01-22 3 views
0

Я пытаюсь создать простое приложение клиент/сервер, который может отправить боб в качестве параметра вместо String, но, не ниже мой кодSpring 4 Restfull Service с боб

Сервер

@Controller 
public class GreetingController { 

private static final String template = "Hello, %s!"; 
private final AtomicLong counter = new AtomicLong(); 

@RequestMapping(method=RequestMethod.POST,value="/returnGreet") 
public @ResponseBody Greeting returnGreet(
     @RequestBody(required=false) Greeting greet) { 
    if(greet == null) 
      return new Greeting(counter.incrementAndGet(), 
        String.format(template, greet)); 
    else 
     return new Greeting(0,"Testing"); 
} 
} 

Client

RestTemplate restTemplate = new RestTemplate(); 

    MultiValueMap<String,Greeting> greet = new LinkedMultiValueMap<String, Greeting>(); 
    greet.add("greet", new Greeting(0,"XOXO")); 



    greeting = restTemplate.postForObject("http://localhost:8080/returnGreet",greet, Greeting.class,greet); 
    System.out.println("Content: " + greeting.getContent()); 
    System.out.println("Id: " + greeting.getId()); 

Результат всегда равен null для приветствия объекта на стороне сервера.

Любая идея?

ответ

0

Вы не используете RestTemplate правильно. Почему вы передаете MultiValueMap в качестве отправителя? Это не будет сериализоваться так, как ожидает ваш сервер.

Просто используйте объект Greeting напрямую.

restTemplate.postForObject("http://localhost:8080/returnGreet", new Greeting(0, "XOXO"), Greeting.class); 

Кроме того, последний аргумент не требуется, у вас нет переменных URI.

+0

Я уже сделал это, но я получаю ошибку org.springframework.web.client.HttpClientErrorException: 400 Bad Request, я не могу его отслеживать больше. – Shahbour

+0

@Shahbour Установите уровень регистратора вашего сервера на DEBUG и проверьте, где Spring не выполняет десериализацию тела. –

+0

Здравствуйте, теперь работало и отсутствующее, что класс Greeting не имел пустой конструктор, который требуется, я узнал, что после изменения журнала на TRACE для уровня . Отлично – Shahbour

Смежные вопросы