Я использую jersey + protobuf. Как я могу передать значимое сообщение об ошибке клиенту? - PullRequest
1 голос
/ 24 ноября 2011

Как я могу передать значимое сообщение об ошибке клиенту? Я могу реализовать ExceptionMapper для создания значимого сообщения об ошибке. Но как мне сделать так, чтобы писатель мог передать сообщение клиенту?

Ответы [ 2 ]

1 голос
/ 24 ноября 2011

Я лично не использовал джерси, но мой общий подход заключается в том, чтобы просто включить состояние результата (включая сообщение об ошибке) в возвращаемое сообщение, то есть

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

или аналогичные, так что все ваши сообщения имеют последовательный способ сообщить о неудаче.Если ваше состояние ошибки больше, чем просто строка, вы можете объявить message для этого и включить его во все результаты, чтобы вы могли просто передать это в любой общий код обработки ошибок.

0 голосов
/ 25 ноября 2011

Вы можете создать исключение WebApplicationException, которое принимает Response в конструкторе и автоматически сопоставляется Джерси с этим ответом.Вы можете поместить значимое сообщение в тело ответа.

...