【发布时间】:2018-09-24 20:04:07
【问题描述】:
我有 dropwizard.io 应用程序,但 GET 请求有问题,我的资源如下所示:
@Path("/foobar")
public class FooBarResource
(...)
@GET
@Path("/{id}")
@UnitOfWork
public Response getFooBar( @PathParam("id") Long id){
return Response.status(200).entity(FooBarService.get(id)).build();
}
@DELETE
@Path("/{id}")
@UnitOfWork
public Response getFooBar( @PathParam("id") Long id){
return Response.status(200).entity(FooBarService.delete(id)).build();
}
@PUT
@Path("/{id}")
@UnitOfWork
public Response getFooBar( @PathParam("id") Long id, FooBar fooBar){
return Response.status(204).entity(FooBarService.update(id, fooBar)).build();
}
}
当我发送GET localhost:port/appPath/foobar/ 时,我得到的是 405 而不是 404。我怎样才能得到 404?当我调试我的应用程序时,我只有一个javax.ws.rs.WebApplicationException,但它是空的。
【问题讨论】:
-
还有哪些其他方法可以匹配 localhost:port/appPath/foobar/` 的
GET? -
不,在这种情况下,我的应用程序发送 405,我希望它发送 404。我可以映射一个异常,但里面充满了 null 值。
-
删除
getFooBar。再次发出GET请求。怎么了? (顺便说一句:请再次确保您已在课堂上发布了所有相关的 JAX-RS 注释) -
我认为 405 符合预期。您只为
foobar/{id}指定了 GET,而不为foobar指定了 GET。
标签: java rest http dropwizard