春休眠模板 415 不支持的媒体类型



我尝试使用 Spring Restful 网络服务。

我在两次日食中创建了两个项目。在一个项目中,我编写了 RestClient 程序,在另一个项目中,我编写了 Web 服务,并将 Web 服务盯在 tomcat 上。我正在尝试将 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); 
最后,

它通过如下更改来工作:

在 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 jar。

相关内容

  • 没有找到相关文章

最新更新