Who*_*AmI 38 java rest web-services jax-rs jersey
我是新手,试图阅读一些文档,但它不起作用,请耐心等待.
我创建了一个UserNotFoundMapper使用ExceptionMappers这样的:
public class UserNotFoundMapper implements ExceptionMapper<UserNotFoundException> {
@Override
public Response toResponse(UserNotFoundException ex) {
return Response.status(404).entity(ex.getMessage()).type("text/plain").build();
}
}
Run Code Online (Sandbox Code Playgroud)
这在我的服务中:
@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();
}
Run Code Online (Sandbox Code Playgroud)
这UserNotFoundException是一个User-Defined例外.
我试过这个:
public class UserNotFoundException extends Exception {
//SOME block of code
}
Run Code Online (Sandbox Code Playgroud)
但是当我调用该服务时,UserDefinedExceptionMapper不会被调用.看来我可能会遗漏一些东西UserDefinedException.那么如何定义这个异常呢?
请让我知道如何定义UserNotFoundException.
Per*_*ion 56
您需要注释您的异常映射器@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();
}
}
Run Code Online (Sandbox Code Playgroud)