Java Application/JSON是restful Web服务中不受支持的媒体类型

Java Application/JSON是restful Web服务中不受支持的媒体类型,java,json,rest,jersey,Java,Json,Rest,Jersey,我正在尝试创建一个restful jersey Web服务。我必须将JSON对象传递给Web服务 @POST @Path("/saveVehicleTrackingData") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.TEXT_PLAIN) public String saveVehicleTrackingData(VehicleTracking vehicle

我正在尝试创建一个restful jersey Web服务。我必须将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:我正在使用邮递员发出http请求

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

第一个问题:

您使用的是哪种主机(Tomcat、GlassFish或其他……),主机的Java版本是什么?我从经验中知道,不同版本的Tomcat与Jersey的结合有时会导致
@Consumes(MediaType.APPLICATION\u JSON)
出现问题

关于第二个问题:

如果要构建RESTful Web服务,路径的正确名称应该是;车辆跟踪数据(或您喜欢的任何内容)。此路径将与已知的HTTP谓词一起工作(请求/响应);获取、发布、放置或删除。

这张图片仅供参考。我刚从另一个帖子上看到


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

您是如何提出请求的?您是否将内容类型指定为application/json?同意,很可能您没有将请求作为json内容类型发送。作为旁注,GET/DELETE不应传递给请求正文。遗憾的是,设置标头不起作用(尽管可能有必要)。问题不在于邮递员请求(正如我对文本/普通媒体类型进行的类似实验),而在于传递给方法saveVehicleTrackingData的单一agrument类型。正确的类型应该是什么?张贴整个stacktrace。类型应该是loggedAs,它可以是读取器提供程序可以解析为的任何类型。你有JSON提供程序吗?如果方法参数仍然是对象类型,那么使用
text/plain
进行测试毫无意义
text/plain
是一个简单的字符串。读者如何知道如何将字符串转换为POJO?您需要确保有一个JSON提供程序作为依赖项并进行了配置。JSON提供程序对我来说是一个新事物。希望这会有所帮助。我正在尝试使用FasterXMLJackson json提供程序。我在POM中添加了所需的maven依赖项(com.fasterxml.jackson.jaxrs,jacksonjaxrsjson提供程序)。您能否进一步帮助我如何配置我的项目,以便在向Web服务发出请求时,JSON数据可以自动转换为POJO。