2
Spring Restful webservice를 사용하려고합니다.Spring RestTemplate 415 지원되지 않는 미디어 유형
두 개의 이클립스에서 두 개의 프로젝트를 만들었습니다. 한 프로젝트에서 나는 RestClient 프로그램을 작성했고 다른 프로젝트에서 나는 webservice를 작성하고 tomcat을 통해 webservice를 쳐다 보았다. 클라이언트와 서버 간의 json 통신으로 java bean을 전달하려고합니다.
하지만 예외가 있습니다.
org.springframework.web.client.HttpClientErrorException: 415 Unsupported Media Type
여러 방법으로 시도했지만 실패했습니다. 아래는 나의 코드 스 니펫이다.
클라이언트 방법 :
private static void postTrack() {
try {
final String uri = "http://localhost:8181/RestWS/test";
Track track = new Track();
track.setTitle("Singer");
track.setSinger("Shas");
RestTemplate restTemplate = new RestTemplate();
Track responseTrack = restTemplate.postForObject(uri, track, Track.class);
} catch (Exception e) {
e.printStackTrace();
}
}
서비스 방법 :
@RequestMapping(value = "/test", method = RequestMethod.POST, headers = "Accept=application/json")
public @ResponseBody Track testMethod(@RequestBody Track track) {
System.out.println(" Inside Test Method : ");
System.out.println(" In GreetingController.greeting() "+track.getSinger());
return track;
}
트랙 클래스 : 또한 내가
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
restTemplate.getMessageConverters().add(new StringHttpMessageConverter());
과 노력
public class Track {
String title;
String singer;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getSinger() {
return singer;
}
public void setSinger(String singer) {
this.singer = singer;
}
@Override
public String toString() {
return "Track [title=" + title + ", singer=" + singer + "]";
}
}
서블릿 XML의 줄 아래에 추가 : 다음과 같이
MultiValueMap<String, String> header = new LinkedMultiValueMap<String, String>();
header.add("Content-Type", "application/json");
HttpEntity<Object> httpEntity = new HttpEntity<Object>(track, header);
ResponseEntity<Track> response = restTemplate.exchange(uri, HttpMethod.POST, httpEntity, Track.class);
이 답변을보십시오. http://stackoverflow.com/questions/4075991/post-request-via-resttemplate-in-json 게다가 나머지 api에 헤더를 지정하는 대신 "consumes"를 사용할 수 있습니다. @RequestMapping (value = "/ test", method = RequestMethod.POST, 소모 = MediaType .APPLICATION_JSON_VALUE) –
이 URL에서 답을 시도했지만 성공하지 못했습니다. – Easy2DownVoteHard2Ans
죄송합니다. consumes = MediaType.APPLICATION_JSON_VALUE를 사용했습니다. 그러나 같은 문제. 종속성 병 파일과 관련된 문제가 있습니까? – Easy2DownVoteHard2Ans