Я пытаюсь создать простое приложение клиент/сервер, который может отправить боб в качестве параметра вместо 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 для приветствия объекта на стороне сервера.
Любая идея?
Я уже сделал это, но я получаю ошибку org.springframework.web.client.HttpClientErrorException: 400 Bad Request, я не могу его отслеживать больше. – Shahbour
@Shahbour Установите уровень регистратора вашего сервера на DEBUG и проверьте, где Spring не выполняет десериализацию тела. –
Здравствуйте, теперь работало и отсутствующее, что класс Greeting не имел пустой конструктор, который требуется, я узнал, что после изменения журнала на TRACE для уровня . Отлично –
Shahbour