这是我的JAX-RS Put方法。我在这里使用了多个参数。
@Path("/Add")
public class AddJSONService {
@PUT
@Path("/deactivateAdd/{idAdd}/{activeStatus}")
@Consumes(MediaType.APPLICATION_JSON)
public void deactivateAdd(@PathParam("idAdd") int idAdd, @PathParam("activeStatus") boolean activeStatus) {
AddInterface addInterface = new AddTable();
addInterface.deactivateAdd(idAdd, activeStatus);
}
}
当我运行此方法时,浏览器会给我发送以下消息。
HTTP状态405 - 不允许的方法。
对此有什么想法吗?
更新 - idAlergy到idAdd。
答案 0 :(得分:3)
除非您使用自定义浏览器插件,例如邮递员,当您输入URL时,浏览器将始终执行HTTP GET。您的方法被指定为仅接受PUT请求,因此请求被拒绝。
答案 1 :(得分:0)
@PathParam
应与路径参数匹配。 idAllergy
- > idAdd
public void deactivateAdd(@PathParam("idAdd") int idSomething, @PathParam("activeStatus") boolean activeStatus)
答案 2 :(得分:0)
我认为你在idAdd参数中犯了一个错误。
你可以尝试:
@Path("/Add")
public class AddJSONService {
@PUT
@Path("/deactivateAdd/{idAdd}/{activeStatus}")
@Consumes(MediaType.APPLICATION_JSON)
public void deactivateAdd(@PathParam("idAdd") int idAdd, @PathParam("activeStatus") boolean activeStatus) {
AddInterface addInterface = new AddTable();
addInterface.deactivateAdd(idAdd, activeStatus);
}
}
更新:为什么在Web服务中使用PUT而不是POST注释?如果我理解得很好,你在浏览器中没有做PUT,那不是吗?