【问题标题】:GWT: How to return (and handle) an error from multipart form (file) uploadGWT:如何从多部分表单(文件)上传返回(和处理)错误
【发布时间】:2011-03-28 05:56:07
【问题描述】:

我有 Google Web Toolkit (Multipart) Form 将文件发布到我的 servlet。当 servlet 中发生错误情况时,我返回一个错误。当一切正常时,我返回一个 JSON 字符串。

    ...
    response.setContentType("text/html");
    response.setCharacterEncoding("UTF8");
    response.getWriter().write(out.toString());

} catch (FileUploadException e) {
    response.sendError(500, e.getMessage());
} catch (Exception e) {
    response.sendError(500, e.getMessage());
}

问题是我找不到在客户端处理这个问题的方法。这是在发布正常和返回错误代码时触发的事件。但我找不到如何找到它是否可以?以及如何从客户端代码中的异常中获取错误消息?

@UiHandler("form")
void submitComplete(SubmitCompleteEvent event)
{
    ...

【问题讨论】:

  • 可以覆盖默认错误文档(在您的服务器配置中),以便它们只输出状态代码等 - 搜索“500”会更容易" 在响应中,然后解析整个默认错误页面。
  • @Igor Klimer:只为一个 servlet 更改服务器配置是否值得?为什么我找不到响应代码(200 或 500)?
  • 嗯,很奇怪,您无法访问响应代码,就像在 RequestBuilder... 但现在似乎无能为力(也许在 GWT 的错误跟踪器上创建一个新问题/改进?)来自 GWT 组的两个相关线程:groups.google.com/group/google-web-toolkit/browse_thread/thread/…groups.google.com/group/google-web-toolkit/browse_thread/thread/…。将响应的内容类型设置为text/html 似乎很重要,以确保它适用于所有浏览器(即使它实际上包含 JSON)。
  • @Igor Klimer 非常感谢 :) 看来我必须返回带有代码 200 的错误消息或更改服务器配置(或忽略从 servlet 返回的所有不正确 JSON 的内容)
  • 很高兴我能帮上忙 :) 我添加了一个总结上述 cmets 的答案,以便其他人可以更轻松地找到这个问题的答案。

标签: java javascript gwt servlets file-upload


【解决方案1】:

目前,似乎没有合适的方法可用(如ResponsegetStatusCode)。您必须处理服务器在SubmitCompleteEvent.getResults() 中返回给您的错误文档。您可以通过在您的服务器上设置更易于解析/处理的自定义错误文档(您应该为您的生产服务器使用任何一种方式)来简化此任务。

GWT 的 Google 群组中的相关主题:onetwo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    • 2014-08-18
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 2011-07-08
    相关资源
    最近更新 更多