0
와봄 4 Restfull 서비스는 내가 대신 문자열의 매개 변수로 콩을 보낼 수있는 간단한 서버/클라이언트 응용 프로그램을 만들려고하지만 아래에 실패하고 빈
서버 내 코드입니다
@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");
}
}
클라이언트
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 잘못된 요청, 더 자세히 추적하지 않습니다. – Shahbour
@Shahbour 서버의 로거 레벨을 DEBUG로 설정하고 Spring이 본문을 역 직렬화하지 못한 곳을 확인하십시오. –
안녕하세요, 그것은 누락되었습니다 지금도 클래스 Greeting은 빈 생성자가 필요하지 않았다는 것이 필요합니다, 나는 로그를 TRACE로 변경 한 후에 그것을 발견했습니다. . 그레이트 –
Shahbour