我有一个在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客户端。
同样在响应允许标题中,我正在 POST,GET,DELETE,OPTIONS,HEAD 。我在这里缺少PUT方法。为什么呢?
答案 0 :(得分:2)
这是默认情况下资源发现的工作方式。它的实现遵循有关OPTIONS资源发现的规范
此方法允许客户端确定与资源相关的选项和/或要求,或服务器的功能,而不会暗示资源操作或启动资源检索。
如果要禁用WADL,可以将属性ServerProperties.WADL_FEATURE_DISABLE
设置为true。
如果您对如何实施这一点感到好奇,请查看WadlModelProcessor
的来源。它遍历所有资源模型并添加额外的OPTIONS资源方法。您可以在Jersey文档Programmatic API for Building Resources
ModelProcessor