gpt4 book ai didi

java - Spring RestTemplate 415 不支持的媒体类型

转载 作者:行者123 更新时间:2023-12-01 04:52:53 24 4
gpt4 key购买 nike

我尝试使用 Spring Restful webservice。

我在两个eclipse中创建了两个项目。在一个项目中,我编写了 RestClient 程序,在另一个项目中,我编写了 webservice 并通过 tomcat 盯着 webservice。我正在尝试将 java bean 作为客户端和服务器之间的 json 通信传递。

但我得到了以下异常(exception)。

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);

最佳答案

最后,它通过如下更改工作:

在 servlet xml 中添加了以下几行。

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> 
<property name="messageConverters">
<list>
<ref bean="jsonConverter" />
</list>
</property>
</bean>

<bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes" value="application/json" />
</bean>

在类路径中添加了 jackson-core-2.5.0 和 jackson-annotations-2.5.0 jars。

关于java - Spring RestTemplate 415 不支持的媒体类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43176927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com