【问题标题】:Null pojo with @BeanParam使用 @BeanParam 的空 pojo
【发布时间】: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


【解决方案1】:

我认为你需要更换:

@GET
@Path("/test/")

与:

@GET
@Path("/test")

因为您调用的 URL 末尾没有 /。

【讨论】:

  • 嗨@adhesivee,不是这样,我们将它用于我们所有的api,并在带有和不带斜杠的情况下进行测试......没有效果。
猜你喜欢
  • 2016-03-17
  • 2021-11-20
  • 1970-01-01
  • 2016-11-02
  • 1970-01-01
  • 1970-01-01
  • 2015-02-25
  • 2015-01-14
  • 2020-07-22
相关资源
最近更新 更多