我在Jetty中部署了.war
文件(我没有构建它,并且无法创建新实例)。
对http://example.com/rest/object/{uuid}
的OPTIONS请求以HEAD, DELETE, GET, OPTIONS
回复。建立战争的人声称他们的档案不是问题。
如果这是我必须在Jetty Java文件中做的事情,我是Jetty noob,所以请详细说明,或者指出一些我可以阅读的文档。
注意:我可以通过CURL POST
,但不能通过http ...
编辑:(我使用CURL发布到不同的端点)
答案 0 :(得分:2)
这不是我发布的问题的答案,但它让我了解发生了什么,这导致问题与我的特定问题无关。话虽如此,我还是没有把它标记为答案,如果它是可以回答的(我不认为它是,你会在一分钟内看到原因)。功能
简短回答是我尝试POST到需要该对象已存在的端点:
http://example.com/rest/object/{uuid}
我应该做的是使用端点,如果你发布POST,它会理解你想要创建一个新对象:
http://example.com/rest/object
答案越长
让我们假设您有一个REST端点,允许您获取特定对象,如下所示:
http://example.com/rest/object/{uuid}
由于您正在处理特定对象,因此您通常不希望在那里发布新对象。 POST意味着创建一个新对象'。如果你 能够在那里发帖,你基本上就会覆盖那个对象......那就是PUT的用途,but it's debatable。此外,PUT也不是一个选择......
因此,由于其主观性,一些Web Services限制请求方法,因此您必须按照架构师的意图进行操作。我运行的REST服务器并没有太多的文档,所以我没有意识到这些限制,我仍然对此感到困惑。
我以为我在做什么是说"好的,我想用这个id创建一个对象。因此,如果我将数据发布到特定的UUID,服务器将知道我想创建一个新对象。"我应该说的是"好的,我想创建一个新对象。它已经在数据中定义了UUID,因此我需要做的就是将它发送到处理这些对象的端点,并期望POST。"像这样:
http://example.com/rest/object