0
我几天来一直在为此折磨我的头脑。这个小sniplet工作正常(在Tomcat上使用Jersey 2.26-b03)。Jersey REST GET正在工作,但不是。指定的HTTP方法不允许用于请求的资源
@GET
@Path("/{code}")
public Response update(@PathParam("code") String code) {
System.out.println("!!!!!!!");
return Response.status(Response.Status.OK).build();
}
curl -i -X GET http://localhost:18270/nyx/rest/servervirtueel/SVM0000
HTTP/1.1 200 OK
后面跟着一串泽西岛追踪我启用。但是,如果我只改变得到一个PUT(完全相同的方法,只是改变了注释):
@PUT
@Path("/{code}")
public Response update(@PathParam("code") String code) {
System.out.println("!!!!!!!");
return Response.status(Response.Status.OK).build();
}
curl -i -X PUT http://localhost:18270/nyx/rest/servervirtueel/SVM0000
HTTP/1.1 405 Method Not Allowed
其次是HTML告诉我,“指定的HTTP方法是不允许用于所请求的资源”。但是,POST不起作用(再次更改注释)。
我希望您在更改'@ PUT'注释并将其部署到tomcat!后重新编译代码。对我来说,在Tomcat的'8.5.11'上运行泽西'2.26'。 –
是的,我同意这不符合您提供的信息。 –
当然,已经有上千次了。之后当然会将它改为POST,所以我知道我在做什么。我正在使用Tomcat 7.0.75。但我更进了一步,写了一个vanilla servlet来覆盖doGet doPut doPost和doDelete。还有PUT和DELETE不起作用,其他都是。所以它似乎是Tomcat的东西,而不是Jersey。但设置readonly和web-resource-collection的http方法并不能解决它。此刻,这是我所有的信息,我希望我知道的比我所看到的更多。 – tbeernot