java如何编写Jersey rest服务可以通过给定的spring代码访问
下面是使用Spring编写的rest客户端:
public void addGadget(String gadgetName, String gadgetUrl) {
Map<String, String> map = new HashMap<String, String>();
map.put("gadgetName", gadgetName);
map.put("gadgetUrl", gadgetUrl);
restTemplate.postForLocation(restServiceUrl, map);
}
这不是我的代码,我无法更改。我应该写rest服务,但没有spring,使用jersey。以下是我的代码,但它不起作用:
@Path("gadgets")
public class RestService {
@POST
@Consumes("application/x-www-form-urlencoded")
public Response addGadget(@FormParam("gadgetUrl") String gadgetUrl,
@FormParam("gadgetName") String gadgetName) throws Exception {
//some logic
return Response.status(201).build();
}
}
当我尝试使用spring客户端访问此服务时,出现异常:
org.springframework.web.client.HttpClientErrorException: 415 Unsupported Media Type
我应该如何重新编写我的服务声明(我想问题在于Consumes注释),以使spring客户端可以使用未更改的spring代码访问它
# 1 楼答案
键入时:
您正在缩小服务可接受的类型。请尽量不要这样做,只是删除这行代码,看看会发生什么。如果没有帮助,则意味着RestTemplate被设置为使用某种未知的媒体类型。如果是,请检查Spring RestTemplate对象发送的媒体类型。如果删除@Consumes无助于写入从RestTemplate发送的媒体类型,那么我可以提供更多帮助