我可以在Java中扩展App Engine Standard错误JSON吗?

时间:2018-02-12 17:46:10

标签: java google-app-engine servlets error-handling servlet-filters

App Engine管理在云端点上作为错误JSON返回的内容。当我抛出Google提供的ServiceException时,我会将其statusCodestatusMessage传递给我:

public ServiceException(int statusCode, String statusMessage) {
    super(statusMessage);

    this.statusCode = statusCode;
    this.reason = null;
    this.domain = null;
}
然后,App Engine会在错误响应中将此JSON返回给调用者:

{
    "error": {
        "errors": [
            {
                "domain": "global",
                "reason": "required",
                "message": "The statusMessage I gave it."
            }
        ],
        "code": 401,
        "message": "The statusMessage I gave it."
    }
}

我想用额外的字段扩展响应,例如一个应用程序错误代码告诉客户端出了什么问题(消息应该是人类可读的)。

我没有深入研究Java servlet和内部工作,但我试图捕获响应并对其进行修改,这对200响应起作用,但对于错误响应却没有。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

根据您的要求,我建议您查看ServiceException类如何在Java endpoints-framework上运行。

在这里,您可以检查异常的处理方式,并在此基础上,扩展返回的错误JSON以满足您的需求,也就是说,任何人都可以理解为什么他的运行失败。