【发布时间】:2016-11-02 09:58:48
【问题描述】:
我正在尝试通过以下方式使用 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 的球衣文档看来,这似乎很简单。
【问题讨论】:
-
你为什么要消费
*/*?。您了解这对您的应用程序的影响吗? -
上面的代码是资源的简化版本,用于演示我遇到的问题,而不是实际的应用程序。关于消费注释:我尝试使用符合我发送的标头但没有效果的应用程序类型,仍然得到相同的错误。
标签: jersey http-status-code-415