【问题标题】:HTTP Options method is not working as expectedHTTP 选项方法未按预期工作
【发布时间】:2017-10-14 05:28:55
【问题描述】:

我有一个在 tomcat 中运行的 Jersey 2.x 应用程序。所有方法实现都按预期工作,甚至我也可以通过导航到 http://{host}:{port}/JerseyRESTWebapp/ws/rest/application.wadl 来获取 WADL。 到目前为止一切都很好。

现在,出于好奇,我尝试使用 HTTP OPTIONS 方法导航到 http://{host}:{port}/JerseyRESTWebapp/ws/rest/employees URL,期望我会得到 405 Method not allowed 但我得到了 200 OK 并且响应正文包含 WADL。有人可以让我知道为什么会这样吗?我正在使用 POSTMAN chrome 扩展作为 REST 客户端。

同样在响应 Allow Header 中,我收到 POST、GET、DELETE、OPTIONS、HEAD。我在这里缺少 PUT 方法。为什么?

【问题讨论】:

    标签: rest jersey wadl


    【解决方案1】:

    这是资源发现默认的工作方式。它的实现遵循关于 OPTIONS 资源发现的规范

    此方法允许客户端确定与资源相关的选项和/或要求,或服务器的功能,而无需暗示资源操作或启动资源检索。

    如果要禁用 WADL,可以通过将属性 ServerProperties.WADL_FEATURE_DISABLE 设置为 true。

    如果您对它的实现方式感到好奇,请查看WadlModelProcessor 的源代码。它遍历所有资源模型并添加一个额外的 OPTIONS 资源方法。您可以在 Jersey 文档 Programmatic API for Building Resources 中阅读有关 ModelProcessor 的更多信息

    【讨论】:

      猜你喜欢
      • 2020-08-09
      • 1970-01-01
      • 2019-04-22
      • 2015-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-27
      • 2021-05-07
      相关资源
      最近更新 更多