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