【问题标题】:I am not able to handle the Exception using JAX-RS我无法使用 JAX-RS 处理异常
【发布时间】:2019-08-10 17:00:11
【问题描述】:

这是 NullPointerExceptionMapper 类

package com.sample.Exceptionhandler;

import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;
import response.Message;

@Provider
public class NullPointerExceptionMapper implements ExceptionMapper<NullPointerException> {

    public Response toResponse(NullPointerException ex) {

        Message message=new Message(500,ex.getMessage(),200);
        return Response.status(Status.NOT_FOUND).entity(message)
                .build();
    }
}

这是消息类

package response;

public class Message {

    private int status;
    private String message;
    private int code;

    public Message() {
    }

    public Message(int status, String message, int code) {
        super();
        this.status = status;
        this.message = message;
        this.code = code;
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

这是控制器方法

@RequestMapping(value = "/getOrder", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public List<PurchaseOrderHeaderDto> getOrders(){
    String exceptionOccured="NULL_POINTER";
    if(exceptionOccured.equalsIgnoreCase("NULL_POINTER")){
        throw new NullPointerException("Null Pointer Exception");
    }
    return purchaseImpl.GetPurchaseOrder();
}

我无法处理抛出的异常,我正在使用 JAX-RS 来处理它,但它无法正常工作,欢迎任何可以帮助我解决这个问题的建议。

【问题讨论】:

  • 您注册了您的提供商吗?
  • 是的,我提供了@Provider 注释
  • 您使用的是哪个 JAX-RS 实现?
  • 我是新手所以我不太了解这个
  • 您的代码看起来不错。理想情况下,我们不应该处理 NullPointerException,NullPointerException 意味着这是一些错误。您可以尝试干净的构建并重新部署。如果没有任何效果,您可以尝试使用 Generic Exception 类而不是 NullPointerException。

标签: mysql spring hibernate rest jax-rs


【解决方案1】:

您正在将 JAX-RS 与 Spring MVC 混合使用。您的控制器代码是 Spring MVC,您尝试使用 ExceptionMapper 处理异常是 JAX-RS。这是两个完全不同且不兼容的框架。对于 Spring MVC,您想使用 @ControllerAdvice 类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多