【发布时间】:2015-11-30 20:28:28
【问题描述】:
我正在尝试将@BeanParam 与 RESTEasy 一起使用,以便我可以使用 swagger 文档。
我已经用@QueryParam 注释了我的 POJO。
我已经让它通过 POST 方法成功工作,但在 GET 方面遇到了重大问题
无论我尝试什么,传入的对象都是空的。
这是我的宝珠
public class TestObject {
@QueryParam("test1")
private String test1;
public TestObject(){
}
public TestObject(String test1){
this.test1 = test1;
}
public String getTest1() {
return test1;
}
public void setTest1(String test1) {
this.test1 = test1;
}
}
这是我的方法
// post works fine and object is there ....
@POST
@Produces(MediaType.APPLICATION_JSON)
@Path("/test")
public Response post(@BeanParam TestObject test){
return PhizzleResponse.response(Response.Status.OK, test, null);
}
@GET
@Path("/test/")
public Response fetch(@BeanParam TestObject activity){
return PhizzleResponse.response(Response.Status.OK, activity, null);
}
这是我调用方法的方式
curl "http://localhost:8080/api/test?token=somevalue&test1=12345
再次 POST 很好,并且对象已填充...与 GET 对象完全为空。
【问题讨论】:
-
当您在浏览器中尝试
localhost:8080/api/test?token=somevalue&test1=12345时,它仍然为空吗? -
@Egemen yes and POSTMAN
-
奇怪的是POJO本身为null。你试过改变路径吗?例如,使用“/another_test”。您可以尝试的另一件事:将
@NotNull添加到您的String test1,并在@BeanParam前面添加@Valid。然后检查您是否收到验证错误。
标签: java api rest annotations resteasy