我正在努力创建一个宁静的球衣网络服务。我必须将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
更新: 正如peeskillet所指出的,这里缺少的是JSON Provider。我的下一个挑战是如何在我的项目中集成JSON Provider。经过一番研究,我发现 FasterXML jackson 是JSON提供商之一。
答案 0 :(得分:0)
关于您的第一个问题:
您使用的是哪种托管(Tomcat,GlassFish或其他......),主机的Java版本是什么?我从经验中知道,不同版本的Tomcat与Jersey相结合有时会给@Consumes(MediaType.APPLICATION_JSON)
带来问题。
关于您的第二个问题:
您希望构建一个RESTful Web服务,路径的正确名称应该是; VehicleTrackingData (或任何你喜欢的)。此路径将与已知的HTTP谓词一起工作(请求/响应); GET,POST,PUT或DELETE。
答案 1 :(得分:0)
此图片仅供参考。我刚从另一篇文章中得到它。
基本上,当您使用 raw 时,它将默认为text/plain
。下拉列表中的 JSON 只是选择语法高亮显示。您仍然需要将Content-Type
标头设置为application/json
。您可以单击 Headers 按钮并添加它。