rest - RESTful Web服务: Handle invalid uri - 404 Error

标签 rest error-handling

我想从我的RESTful Web服务发送一个状态响应XML,以防它与任何有效的URL不匹配。默认情况下,它将404响应发送回客户端。有什么办法可以实现?

我正在使用Jersey来实现RESTful Web服务。

最佳答案

Jersey具有实现通用异常处理程序 Controller 的功能。基本上,如果没有捕获特定的运行时异常,则执行该 Controller 。

以下 Controller 处理在Jersey找不到其他 Controller 的异常。

package com.example.controllers;

import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;

import com.sun.jersey.api.NotFoundException;

@Provider
public class NotFoundExceptionHandler implements ExceptionMapper<NotFoundException> {
    @Override
    public Response toResponse(NotFoundException ex) {
        return Response.status(Response.Status.NOT_FOUND).build();
    }
}

顺便说一句,以这种相同的方式处理任何运行时异常通常是一个好主意。示例如下。
package com.example.controllers;

import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;

@Provider
public class GenericExceptionHandler implements ExceptionMapper<Throwable> {
    @Override
    public Response toResponse(Throwable ex) {
        return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
    }
}

关于rest - RESTful Web服务: Handle invalid uri - 404 Error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27267098/

相关文章:

javascript - 将表单的内容发布到 rest api

java - jetty 服务器中的 REST 和静态内容

excel - 仅一个单元格出现 “too many cell format”错误

node.js - AzureAD JWT token 受众声明前缀使 JWT token 无效

java - REST 代理与 REST 客户端到底是什么?

python - 如何在Python中实现aws Glacier示例请求?

Powershell 错误 : Is there a way to trap "command not found" errors into a custom function?

Flutter - 异步文件读取异常处理

c# - 在 C# 中捕获 MySQL 触发信号

node.js - 如何在全局错误处理程序中捕获特定路由器请求的错误之前将其终止