【发布时间】:2020-12-15 20:11:36
【问题描述】:
第 1 天:在剩余端点下方添加删除操作。
@Path("/company/v1/department")
@Component
public class ManageResource {
@DELETE
@Path("/{identifier}/{identifier_value}/employee")
public void delete(@PathParam("identifier") String identifier,
@PathParam("identifier_value") final String identifierValue,
@QueryParam("age") final String age) {
//delete operation
}
}
我能够通过以下请求使用邮递员调用 DELETE 端点:
DELETE: http://localhost:8080/company/v1/department/name/baner/employee?age=50
第 2 天:为同一资源中的更新操作添加了下面的休息端点。
@Path("/company/v1/department")
@Component
public class ManageResource {
@DELETE
@Path("/{identifier}/{identifier_value}/employee")
public void delete(@PathParam("identifier") String identifier,
@PathParam("identifier_value") final String identifierValue,
@QueryParam("age") final String age) {
//delete operation
}
@PUT
@Path("/empid/{value}/employee")
@Consumes(MediaType.APPLICATION_JSON)
public void update(@PathParam("value") final String identifierValue,
@RequestBody final EmployeeUpdateRequest request) {
//update operation
}
}
添加此新端点后,我可以使用邮递员通过以下请求调用 PUT:
PUT: http://localhost:8080/company/v1/department/empid/epid-123/employee
{
//Json request body
}
但是当我尝试调用 Delete 端点时,它给了我 405(不允许的方法)错误。 如果我评论我的新 Put 方法,则 Delete 方法可以正常工作。 另外,如果我将 Put 方法的 Path 替换为“/{identifier}/{identifier_value}/employee”,那么 Delete 和 Put 方法都可以正常工作。
我正在使用带有 tomcat 的 Jersey 1.19。 有人可以帮我解决这个问题吗?
【问题讨论】:
标签: java rest jersey http-status-code-405 http-method