Application / JSON是restful webservice中不支持的媒体类型

时间:2015-04-03 14:22:02

标签: java json rest jersey

我正在努力创建一个宁静的球衣网络服务。我必须将JSON对象传递给Web服务。

    @POST
    @Path("/saveVehicleTrackingData")
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.TEXT_PLAIN)
    public String saveVehicleTrackingData(VehicleTracking vehicleTracking) {
        return vehicleTracking.toString();
    }

当我尝试向服务发出请求时,它会显示 HTTP状态415 - 不支持的媒体类型。请提供帮助。此外,方法 saveVehicleTrackingData 的单个参数应该是什么类型。

PS:我正在使用POSTMAN发出http请求。 http://goo.gl/vwXNXQ

enter image description here

更新: 正如peeskillet所指出的,这里缺少的是JSON Provider。我的下一个挑战是如何在我的项目中集成JSON Provider。经过一番研究,我发现 FasterXML jackson 是JSON提供商之一。

2 个答案:

答案 0 :(得分:0)

关于您的第一个问题:

您使用的是哪种托管(Tomcat,GlassFish或其他......),主机的Java版本是什么?我从经验中知道,不同版本的Tomcat与Jersey相结合有时会给@Consumes(MediaType.APPLICATION_JSON)带来问题。

关于您的第二个问题:

您希望构建一个RESTful Web服务,路径的正确名称应该是; VehicleTrackingData (或任何你喜欢的)。此路径将与已知的HTTP谓词一起工作(请求/响应); GET,POST,PUT或DELETE。

答案 1 :(得分:0)

enter image description here

此图片仅供参考。我刚从另一篇文章中得到它。

基本上,当您使用 raw 时,它将默认为text/plain。下拉列表中的 JSON 只是选择语法高亮显示。您仍然需要将Content-Type标头设置为application/json。您可以单击 Headers 按钮并添加它。