Java Jersey中的Exception Apper抛出MapPableContainerException

Java Jersey中的Exception Apper抛出MapPableContainerException,java,rest,exception-handling,jersey,Java,Rest,Exception Handling,Jersey,我创建了一个Rest服务,并希望实现异常处理,但在我尝试运行服务时,它会抛出MapPableContainerException。你可以在这里找到我的代码 我的服务: @GET @Produces({MediaType.APPLICATION_JSON}) @Path("add") public Response addJobSeeker() throws MyCustomException{ throw new MyCustomException("My Exception");

我创建了一个Rest服务,并希望实现异常处理,但在我尝试运行服务时,它会抛出MapPableContainerException。你可以在这里找到我的代码

我的服务:

@GET
@Produces({MediaType.APPLICATION_JSON})
@Path("add")
public Response addJobSeeker() throws MyCustomException{

    throw new MyCustomException("My Exception");    

}
我的特例课

@Provider
public class MyExceptionMapper extends Exception implements ExceptionMapper<MyCustomException>{
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    public MyExceptionMapper(String str){
        super(str);
    }
    @Override
    public Response toResponse(MyCustomException exception) {
        System.out.println("In my exception mapper -- "+exception.getMessage());
        Success sc = new Success(404, "Hello", "I am mukesh");
        return Response.status(404).entity(sc).type(MediaType.APPLICATION_JSON).build();        
    }

}

ExceptionMapper
的通用参数类型应该是您的异常类型。因为映射器扩展了异常,所以应该抛出MyExceptionMapper而不是MyCustomException,或者将泛型类型设为MyCustomExceptioninstead@peeskillet感谢您的回复,我根据您的建议尝试了,也编辑了问题,但我仍然获取相同的问题。您是如何注册地图绘制者的?它只有一个除异常消息之外的构造函数?您不应该以这种方式实现映射器。只需将您的自定义异常用作泛型类型,并去掉该构造函数,直到他不再使用它为止。我根据您的建议更新了我的代码和问题,但仍然收到相同的问题,我不知道为什么:(1.不要使映射器扩展异常。2.将映射器的泛型类型设置为自定义异常,即
ExceptionMapper
。3.抛出自定义异常。4.在映射器中删除该构造函数。它需要一个默认构造函数。5.确保映射器已注册。您可以在构造函数中向ck
public class MyCustomException extends Exception {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    public MyCustomException(String str){
        super(str);
    }