我在 Jetty 中部署了一个.war
文件(我没有构建它,也无法创建新实例(。
对http://example.com/rest/object/{uuid}
的选项请求以HEAD, DELETE, GET, OPTIONS
响应。制造战争的人声称这不是他们的档案问题。
是否有我可以更改的 Jetty 配置文件以允许所有 http 方法?
如果这是我必须在 Jetty Java 文件中做的事情,我是一个 Jetty 菜鸟,所以请啰嗦,或者指出一些我可以阅读的文档。
注意:我可以通过 CURLPOST
,但不能通过 http...
编辑:(我正在使用 CURL 发布到不同的端点(
这不是对我发布的问题的答案,但它让我了解发生了什么,这导致问题与我的特定问题无关。话虽如此,如果它是可回答的,我不会将其标记为答案(我认为不是,你会在一分钟内明白为什么(。
简短的回答是我试图 POST 到期望对象已经存在的端点:
http://example.com/rest/object/{uuid}
我应该做的是使用一个端点,如果你 POST,它会理解你想要创建一个新对象:
http://example.com/rest/object
更长的答案
假设您有一个 REST 端点,它允许您获取特定对象,如下所示:
http://example.com/rest/object/{uuid}
由于您正在处理特定对象,因此通常不希望在那里发布新对象。POST 表示"创建新对象"。如果你能够在那里发布,你基本上会覆盖那个对象......这就是PUT的用途,但值得商榷。此外,PUT也不是一种选择...
因此,由于其主观性质,某些 Web 服务会限制请求方法,因此您必须按照架构师的预期方式执行此操作。我正在运行的 REST 服务器没有太多的文档,所以我不知道这些限制,并且仍然对此感到困惑。
我以为我在做的是说"好的,我想用这个id创建一个对象。因此,如果我将数据发布到该特定UUID,服务器就会知道我想创建一个新对象。我应该说的是"好的,我想创建一个新对象。它的UUID已经在数据中定义,所以我需要做的就是将其发送到处理这些对象的端点,并期望一个POST。喜欢这个:
http://example.com/rest/object