【发布时间】: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