Jetty 有没有一种方法可以在不更改war文件的情况下解锁所有http方法?

Jetty 有没有一种方法可以在不更改war文件的情况下解锁所有http方法?,jetty,Jetty,我在Jetty中部署了一个.war文件(我没有构建它,也不可能创建新实例) 对http://example.com/rest/object/{uuid}用HEAD、DELETE、GET、OPTIONS响应。发动战争的人声称他们的档案没有问题 是否可以更改Jetty配置文件以允许所有http方法? 如果这是我必须在Jetty Java文件中做的事情,我是Jetty noob,所以请详细说明,或者给我指一些我可以阅读的文档 注意:我可以通过CURLPOST,但不能通过http 编辑:(我用CURL发

我在Jetty中部署了一个
.war
文件(我没有构建它,也不可能创建新实例)

http://example.com/rest/object/{uuid}
HEAD、DELETE、GET、OPTIONS
响应。发动战争的人声称他们的档案没有问题

是否可以更改Jetty配置文件以允许所有http方法? 如果这是我必须在Jetty Java文件中做的事情,我是Jetty noob,所以请详细说明,或者给我指一些我可以阅读的文档

注意:我可以通过CURL
POST
,但不能通过http

编辑:(我用CURL发布到另一个端点)

这不是我发布的问题的答案,但它让我了解了发生了什么,这导致问题与我的特定问题无关。话虽如此,我不会将此标记为可回答的答案(我不认为是,你马上就会明白原因)

简短的回答是,我试图发布到一个端点,该端点期望对象已经存在:

http://example.com/rest/object/{uuid}
我应该做的是使用端点,如果您发布,它会理解您想要创建一个新对象:

http://example.com/rest/object

较长的答案

假设您有一个REST端点,它允许您获取特定对象,如下所示:

http://example.com/rest/object/{uuid}
因为您处理的是一个特定的对象,所以通常不希望在那里发布新对象。POST的意思是“创建一个新对象”。如果你能在那里发布,你基本上会覆盖那个对象。。。这就是为什么。而且,看跌期权也不是一个选项

因此,由于它的主观性,一些限制请求方法,因此您必须按照架构师的意图来执行。我正在运行的REST服务器没有太多文档,所以我不知道这些限制,并且仍然对此感到困惑

我当时想说的是“好的,我想用这个id创建一个对象。因此,如果我将数据发布到特定的UUID,服务器就会知道我想创建一个新对象。”我应该说的是“好的,我想创建一个新对象。它的UUID已经在数据中定义,所以我所需要做的就是将其发送到处理这些对象的端点,并期待一个POST。”如下图所示:

http://example.com/rest/object
这不是对我发布的问题的回答,但它让我了解了发生了什么,这导致问题与我的特定问题无关。话虽如此,我不会将此标记为可回答的答案(我不认为是,你马上就会明白为什么)

简短的回答是,我试图发布到一个端点,该端点期望对象已经存在:

http://example.com/rest/object/{uuid}
我应该做的是使用端点,如果您发布,它会理解您想要创建一个新对象:

http://example.com/rest/object

较长的答案

假设您有一个REST端点,它允许您获取特定对象,如下所示:

http://example.com/rest/object/{uuid}
因为你处理的是一个特定的对象,你通常不想在那里发布一个新对象。POST的意思是“创建一个新对象”。如果你能够在那里发布,你基本上会覆盖那个对象…这就是它的用途。此外,PUT也不是一个选项

因此,由于其主观性,一些限制请求方法必须按照架构师的意图进行。我运行的REST服务器没有太多文档,因此我不知道这些限制,并且仍然对此感到困惑

我当时想说的是“好的,我想用这个id创建一个对象。因此,如果我将数据发布到特定的UUID,服务器就会知道我想创建一个新对象。”我应该说的是“好的,我想创建一个新对象。它的UUID已经在数据中定义,所以我所需要做的就是将其发送到处理这些对象的端点,并期待一个POST。”如下图所示:

http://example.com/rest/object

servlet规范还有一个非常特定的行为。请查看
javax.servlet.http.HttpServlet
及其
doOptions()
方法的源代码。这是默认的实现。特定的servlet可以覆盖doOptions()行为来执行自己的行为(就像您的REST库可能做的那样)servlet规范还有一个非常特定的行为。请查看
javax.servlet.http.HttpServlet
及其
doOptions()
方法的源代码。这是默认的实现。特定的servlet可以覆盖doOptions()行为来执行自己的行为(就像您的REST库可能做的那样)