restygwt - 在客户端获取原始服务器错误
restygwt - get original server error on client site
我有一个基于 GWT + RestyGWT 的应用程序 Spring
我正在尝试在客户端站点上进行一些用户友好的异常处理。
我在服务器端有一些抛出异常的方法:
@PostMapping(...)
@Transactional(...)
public long withdraw(@PathVariable(value = "amount) long amount) throws CustomException {
if (amount < 0) {
throw new CustomException("Amount is negative");
}
account.withdraw(amount);
return account.balance;
}
从客户端调用异步并在那里处理:
... new MethodCallback<...>() {
@Override
public void onFailure(Method method, Throwable throwable) {
// here should be error handling
}
如何获取原始错误消息和 class("Amount is negative" 和 CustomException)?我能从方法和可抛出的变量中得到的是:
- 错误代码 = 500
- 回复消息="Internal Server Error"
- throwable 是 org.fusesource.restygwt.client.FailedResponseException
您不能在 RestyGWT 中收到相同的 Exception
(这可以使用 GWT RPC 完成)。但是,您可以在服务器端统一处理异常(在球衣中,您可以使用 spring 中的异常映射器称为异常处理程序)和 return 具有已知 JSON 格式的错误响应。然后你可以使用 FailedResponseException
得到这个错误响应(这是你现在收到的异常),这个异常包含响应,所以你可以做 MyKnownErrorResponse o = JSON.parse(failedResponseException.getResponse().getText())
.
我有一个基于 GWT + RestyGWT 的应用程序 Spring
我正在尝试在客户端站点上进行一些用户友好的异常处理。
我在服务器端有一些抛出异常的方法:
@PostMapping(...)
@Transactional(...)
public long withdraw(@PathVariable(value = "amount) long amount) throws CustomException {
if (amount < 0) {
throw new CustomException("Amount is negative");
}
account.withdraw(amount);
return account.balance;
}
从客户端调用异步并在那里处理:
... new MethodCallback<...>() {
@Override
public void onFailure(Method method, Throwable throwable) {
// here should be error handling
}
如何获取原始错误消息和 class("Amount is negative" 和 CustomException)?我能从方法和可抛出的变量中得到的是:
- 错误代码 = 500
- 回复消息="Internal Server Error"
- throwable 是 org.fusesource.restygwt.client.FailedResponseException
您不能在 RestyGWT 中收到相同的 Exception
(这可以使用 GWT RPC 完成)。但是,您可以在服务器端统一处理异常(在球衣中,您可以使用 spring 中的异常映射器称为异常处理程序)和 return 具有已知 JSON 格式的错误响应。然后你可以使用 FailedResponseException
得到这个错误响应(这是你现在收到的异常),这个异常包含响应,所以你可以做 MyKnownErrorResponse o = JSON.parse(failedResponseException.getResponse().getText())
.