【问题标题】:RESTEASY throwing exception with empty query paramsRESTEASY 抛出带有空查询参数的异常
【发布时间】:2016-05-22 17:02:41
【问题描述】:

我有一个基于 Tomcat/Jersey 的旧应用程序,我们将其移植到 Undertow/RestEasy,但我遇到了带有空查询参数的 REST 调用的问题。

示例资源类:

@Path("books")
class BookResource {
    @QueryParam("start") int _start;
    @QueryParam("limit") int _limit;

    @Get
    public List<Books> getBooks {
       //implementation
    }
}

使用上面的资源,当我像下面那样制作一个资源时,它可以与我的 Jersey 应用程序一起使用,但会在 RestEasy 中引发错误。我知道这个请求看起来很奇怪,但是请求来自基于用户选择的 UI。这可能是 RestEasy 配置吗?

{{baseUrl}}/books?start=&limit=

【问题讨论】:

  • 我通过将 start 和 limit 更改为 String 来解决它,然后在可用时转换为 int。但我仍然想知道为什么它在 RestEasy 中失败了。

标签: java jax-rs resteasy undertow


【解决方案1】:

如果查询参数未定义,当它作为输入传递给服务器端服务方法时,它们的值将为空。由于 int 是原始的并且不能保存空值,因此会引发异常。将 int 更改为 Integer 应该可以解决您的问题。

【讨论】:

  • 不,它没有。
猜你喜欢
  • 2019-10-15
  • 1970-01-01
  • 1970-01-01
  • 2019-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-01
相关资源
最近更新 更多