0

我正在尝试通过以下方式使用 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

我的问题是,这会导致 Jersey 打印此消息的 415 响应:

未找到 Java 类 BeanParamModel、Java 类型类 BeanParamModel 和 MIME 媒体类型 application/octet-stream 的消息正文阅读器。与 MIME 媒体类型兼容的注册消息正文阅读器是:...

我正在尝试添加“application/x-www-form-urlencoded”标头,但该标头类型的消息也会重复。我还尝试使用 application/json 标头,这会导致由于输入结束而从 jackson 映射器中预期 EOF。

谁能告诉我我做错了什么?从@BeanParam 的球衣文档看来,这似乎很简单。

4

1 回答 1

0

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

于 2017-10-11T23:52:46.663 回答