java - Restygwt - 在客户端站点上获取原始服务器错误

标签 java gwt resty-gwt

我有一个使用 Spring 在 GWT + RestyGWT 上构建的应用程序

我正在尝试在客户端站点上进行一些用户友好的异常处理。

我在服务器端有一些抛出异常的方法:

@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
}

如何获取原始错误消息和类(“金额为负”和 CustomException)?我能从方法和可抛出变量中得到的所有信息是:

  • 错误代码 = 500
  • 响应消息 =“内部服务器错误”
  • 可抛出的是 org.fusesource.restygwt.client.FailedResponseException

最佳答案

您无法收到相同的ExceptionRestyGWT中(这可以使用GWT RPC来完成)。但是,您可以在服务器端统一处理异常(在 Jersey ,您可以在 Spring 中使用异常映射器,称为异常处理程序)并以已知的 JSON 格式返回错误响应。然后您可以使用 FailedResponseException 获得此错误响应(这是您现在收到的异常),此异常包含响应,因此您可以执行 MyKnownErrorResponse o = JSON.parse(failedResponseException.getResponse().getText()) .

关于java - Restygwt - 在客户端站点上获取原始服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54217183/

相关文章:

java - 如何登录GAE上部署的GWT应用程序中的gdata?

java - 其余部分无法解析为类型

java - AndEngine Line.onAreaTouched 未调用

java - 是否可以在 Android 中设置提示 Spinner

java - 使用jsp通过HTTP发送短信

java - jackson 奇怪的 XML 反序列化

gwt - 调度传入 RPC 调用时出现异常

java - 将 Java Applet 迁移到什么/哪里?

java - GWT - Restygwt - 响应不是有效的 JSON 文档

java - GWTP Rest Dispatch 可以与 REST Spring 服务器后端一起使用吗?