2
我正在嘗試使用Spring Restful webservice。Spring RestTemplate 415 Unsupported Media Type
我在兩次日食中創建了兩個項目。在一個項目中,我編寫了RestClient程序,在另一個項目中我編寫了webservice,並通過tomcat盯住web服務。我試圖通過java bean作爲客戶端和服務器之間的json通信。
但我得到了異常。
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;
}
跟蹤類別:
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 + "]";
}
}
此外,我試圖與
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
restTemplate.getMessageConverters().add(new StringHttpMessageConverter());
而且
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中指定標題。例如: @RequestMapping(value =「/ test」,method = RequestMethod.POST,consumes = MediaType .APPLICATION_JSON_VALUE) –
我試過了這個URL的答案,但是沒有成功。 – Easy2DownVoteHard2Ans
對不起,我用了consumes = MediaType.APPLICATION_JSON_VALUE。但同樣的問題。有與依賴jar文件相關的問題嗎? – Easy2DownVoteHard2Ans