我使用jersey + protobuf,如何将有意义的错误消息传回客户端?

时间:2011-11-24 00:04:45

标签: jersey protocol-buffers

如何将有意义的错误消息传回客户端?我可以实现ExceptionMapper来生成有意义的错误消息。 但是如何让作者将消息传递给客户?

2 个答案:

答案 0 :(得分:1)

我个人没有使用过球衣,但我的一般方法只是在返回的信息中包含结果状态(包括错误信息),即

message GetCustomerResult {
    optional string errorMessage = 1;
    optional Customer customer = 2;
}

或类似,以便您的所有邮件都有一致的方式来报告失败。如果您的错误状态不仅仅是一个字符串,您可以为此声明message,并将其包含在所有结果中,这样您就可以将其传递给任何共享的错误处理代码。

答案 1 :(得分:0)

您可以抛出WebApplicationException,它在构造函数中接受Response并由Jersey自动映射到该响应。您可以将有意义的消息放入响应正文中。