Day 1: Added below rest endpoint for delete operation.
@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 } } I was able to invoke DELETE endpoint using postman with below request:
DELETE: http://localhost:8080/company/v1/department/name/baner/employee?age=50 Day 2: Added below rest endpoint for the update operation in the same resource.
@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 } } After adding this new endpoint, I am able to invoke PUT using postman with below request:
PUT: http://localhost:8080/company/v1/department/empid/epid-123/employee { //Json request body } But when I try to invoke Delete endpoint it is giving me 405 (Method Not Allowed) error. If I comment my new Put method, then the Delete method works fine. Also, if I replace Path for Put method to "/{identifier}/{identifier_value}/employee" then both Delete and Put method works fine.
I am using Jersey 1.19 with tomcat. Can someone help me with this?