HTTP 选项方法未按预期工作
HTTP Options method is not working as expected
我在 tomcat 中有一个 Jersey 2.x 应用程序 运行。所有方法实现都按预期工作,甚至我也可以通过导航到 http://{host}:{port}/JerseyRESTWebapp/ws/rest/application.wadl 来获取 WADL。
到目前为止一切都很好。
现在,出于好奇,我尝试使用 HTTP OPTIONS 方法导航到 http://{host}:{port}/JerseyRESTWebapp/ws/rest/employees URL,希望我会得到 405方法不允许 但我得到 200 OK 并且响应正文包含 WADL。有人可以让我知道为什么会这样吗?我正在使用 POSTMAN chrome 扩展作为 REST 客户端。
同样在响应 Allow Header 中,我得到 POST,GET,DELETE,OPTIONS,HEAD。我在这里缺少 PUT 方法。为什么?
这是默认情况下资源发现的工作方式。它的实施是为了遵循关于 OPTIONS 资源发现的规范
This method allows the client to determine the options and/or requirements associated with a resource, or the capabilities of a server, without implying a resource action or initiating a resource retrieval.
如果要禁用 WADL,可以将 属性 ServerProperties.WADL_FEATURE_DISABLE
设置为 true。
如果您对它的实现方式感到好奇,请查看 WadlModelProcessor
. It goes through all the resource models and adds an extra OPTIONS resource method. You can read more about the ModelProcessor
in the Jersey docs Programmatic API for Building Resources
的源代码
我在 tomcat 中有一个 Jersey 2.x 应用程序 运行。所有方法实现都按预期工作,甚至我也可以通过导航到 http://{host}:{port}/JerseyRESTWebapp/ws/rest/application.wadl 来获取 WADL。 到目前为止一切都很好。
现在,出于好奇,我尝试使用 HTTP OPTIONS 方法导航到 http://{host}:{port}/JerseyRESTWebapp/ws/rest/employees URL,希望我会得到 405方法不允许 但我得到 200 OK 并且响应正文包含 WADL。有人可以让我知道为什么会这样吗?我正在使用 POSTMAN chrome 扩展作为 REST 客户端。
同样在响应 Allow Header 中,我得到 POST,GET,DELETE,OPTIONS,HEAD。我在这里缺少 PUT 方法。为什么?
这是默认情况下资源发现的工作方式。它的实施是为了遵循关于 OPTIONS 资源发现的规范
This method allows the client to determine the options and/or requirements associated with a resource, or the capabilities of a server, without implying a resource action or initiating a resource retrieval.
如果要禁用 WADL,可以将 属性 ServerProperties.WADL_FEATURE_DISABLE
设置为 true。
如果您对它的实现方式感到好奇,请查看 WadlModelProcessor
. It goes through all the resource models and adds an extra OPTIONS resource method. You can read more about the ModelProcessor
in the Jersey docs Programmatic API for Building Resources