当前位置: 首页 > 知识库问答 >
问题:

JAX-RS jersey ExceptionMappers用户定义异常

仲孙磊
2023-03-14

我对此很陌生,试图阅读一些文档,但它不起作用,请原谅我。

我使用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();
}

UserNotFoundException用户定义的异常。

我试过这个:

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

共有1个答案

伏业
2023-03-14

您需要用@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();
    }
}
 类似资料:
  • 问题内容: 我对此并不陌生,请尝试阅读一些文档,但无法正常工作,请耐心等待。 我创建了一个使用这样的: 这是我的服务: 的是一个例外。 我尝试了这个: 但是,当我调用服务时,不会被调用。看来我可能缺少东西。那么如何定义这个异常呢? 请让我知道如何定义。 问题答案: 您需要使用注释您的异常映射器,否则它将永远不会在JAX- RS运行时中注册。

  • 我现在正在学习jax-ws。我定义了一个Web服务: 用户服务。JAVA UserServiceImpl。JAVA 使用者JAVA 当我在客户端中调用queryUserInfo()时,它会工作;但是当服务器执行该函数时,参数user将为空。 我使用wsimport生成客户机代码。 ...........................................................

  • 我正在使用ApacheCXF、Spring和JAX-RS构建一个REST web服务,当输入JSON验证失败时,我需要在其中发送自定义异常。 我没有使用业务逻辑,而是尝试使用CXF、JAX-RS的现成bean验证功能。 Bean验证工作正常,但是,它总是抛出500个异常,这是不太有用的。根据留档,它是org.apache.cxf.jaxrs.validation.ValidationExcepti

  • 问题内容: 我有一个使用Jersey构建的REST服务。 我希望能够根据发送到服务器的MIME设置我的自定义异常编写器的MIME。当接收到json和接收到xml 时返回。 现在我进行了硬编码,但这使XML客户端陷入了黑暗。 我可以利用什么上下文来获取当前请求? 谢谢! 根据答案更新 对于对完整解决方案感兴趣的其他人: 连同 其中ErrorResponseConverter是自定义JAXB POJO

  • 我正在做一个java项目。在浏览用户定义的异常类的现有代码时,我遇到了一个错误,代码如下所示: 每当我必须在代码中抛出异常时,我就会编写 我想知道这是某种编码风格或模式,即在公共静态方法中包含异常的创建和抛出,并在我们想要抛出异常时调用该方法? 开发人员选择这种方式抛出异常的原因可能是什么?为什么不直接编写

  • 根据JAVA 8提供的新特性,可选类是防止空指针异常的一种方法。如果输出为null,我们可以使用orelsethow方法()引发异常。我想知道如何使用它抛出用户定义的异常

  • 我正在尝试创建这个存储过程,它应该将客户编号和电子邮件地址作为输入。然后更新该客户的电子邮件地址。如果新的电子邮件地址与旧的相同,则应提出异常。 但它是抛出错误。不确定我是否做得对。我正在使用最新的OracleSQLDeveloper。 错误(6,1): PLS-00103:在需要以下内容之一时遇到符号“DECLARE ”: begin function pragma procedure subt

  • 我创建了一个自定义异常类 并且在抛出异常时将此异常类发送到客户端。我还使用进行进程。 如何捕获安全过滤器抛出异常并创建用户定义的异常并将其发送到客户端? 我的过滤方法,