使用Jersey的@BeanParam会导致415错误

时间:2016-06-30 10:45:38

标签: jersey http-status-code-415

我试图通过以下方式使用Jersey的@BeanParam注释:

这是我的豆子:

public class BeanParamModel {

@QueryParam(value = "param1")
private String param1;

public BeanParamModel(@QueryParam("param1") String param1) {
    this.param1 = param1;
}

public String getParam1() {
    return param1;
}

public void setParam1(String param1) {
    this.param1 = param1;
}}

这是需要使用它的资源方法:

@Consumes("*/*")
@Path("mypath")
@GET
public Response getUpgradeStatus(@QueryParam("param1") String param1, @BeanParam BeanParamModel user) {
    return Response.ok().build();
}

现在我想使用单元测试对此进行测试,该单元测试使用以下url向测试服务器发送http请求:

获取http://path_to_resource?param1=1

我的问题是在泽西打印此消息后得到415响应:

  

未找到Java类BeanParamModel和Java类型类BeanParamModel的消息正文阅读器,以及MIME媒体类型application / octet-stream。   与MIME媒体类型兼容的已注册邮件正文阅读器为:...

我尝试添加" application / x-www-form-urlencoded"标题但该消息也重复该标题类型。我也尝试使用application / json标头,这导致由于输入结束而从jackson映射器中进行EOF预测。

有人能告诉我我做得不对吗?从@BeanParam的球衣文件看起来很简单。

1 个答案:

答案 0 :(得分:0)

使用@GET你不应该拥有@Consumes。