java - JAX-RS jersey ExceptionMappers 用户定义的异常

标签 java web-services rest jersey jax-rs

我是新手,试图阅读一些文档但它不起作用,请多多包涵。

我使用 ExceptionMappers 创建了一个 UserNotFoundMapper,如下所示:

public class UserNotFoundMapper implements ExceptionMapper<UserNotFoundException> {

@Override
public Response toResponse(UserNotFoundException ex) {
    return Response.status(404).entity(ex.getMessage()).type("text/plain").build();
}

}

这在我的服务中:

@GET
@Path("/user")
public Response getUser(@QueryParam("id") String id) throws UserNotFoundException{
    //Some user validation code with DB hit, if not found then
    throw new UserNotFoundException();
}

UserNotFoundExceptionUser-Defined 异常。

我试过了:

public class UserNotFoundException extends Exception {
       //SOME block of code 
}

但是当我调用服务时,UserDefinedExceptionMapper 没有被调用。看来我可能在 UserDefinedException 中遗漏了一些东西。那么如何定义这个异常呢?

请告诉我如何定义 UserNotFoundException

最佳答案

您需要使用 @Provider 注释您的异常映射器,否则它永远不会注册到 JAX-RS 运行时。

@Provider
public class UserNotFoundMapper implements
        ExceptionMapper<UserNotFoundException> {
    @Override
    public Response toResponse(UserNotFoundException ex) {
        return Response.status(404).entity(ex.getMessage()).type("text/plain")
                .build();
    }
}

关于java - JAX-RS jersey ExceptionMappers 用户定义的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15185299/

相关文章:

objective-c - 执行服务器请求时从后台进入前台时 iPad 应用程序崩溃

rest - 如何在 Symfony2 中跟踪 API 使用情况?

java - Spring Java Rest处理反序列化时的无效类型

java - Jersey Rest 服务何时实际启动/关闭?

java - 创建小程序获取图像

java - 使用不同的参数传递方式调用构造函数的差异

java - 如何在通话期间打开扬声器

java - 如何使用 String 方法打印对象值

c# - 使用 httpwebrequest 调用 Web 服务方法 - 无法连接到远程服务器错误

c# - 类库中的 ASP.Net ASMX Web 服务(最佳实践)