我有一个项目可以执行2次RPC调用,然后保存用户在数据存储区中提供的数据。第一个RPC调用正常,但从第二个调用开始,我总是收到onFailure()
消息。如何确定触发onFailure()
的原因?我试过caught.getCause()
,但它没有返回任何内容。
feedbackService.saveFeedback(email,studentName,usedTemplates,
new AsyncCallback<String>() {
public void onFailure(Throwable caught) {
// Show the RPC error message to the user
caught.getCause();
Window.alert("Failure!");
}
public void onSuccess(String result) {
Window.alert("Saved!");
}
});
答案 0 :(得分:1)
Throwable实例是Exception的实例。您可以检查它是否是这样的自定义异常:
if (caught instanceOf CustomException){
或者如果要显示异常消息,可以使用getMessage():
Window.alert("Failure: " + caught.getMessage());
答案 1 :(得分:0)
如果发生错误,GWT-rpc并不容易ebug。
最简单的部分是检查异常是StatusCodeException
的一部分。
您可以使用Chrome-Web-Inspector来实现GWT-RPC
您应该可以看到从浏览器到您后端的所有来电。
最常见的失败是因为对象的序列化。您必须确保所有dtransferred对象都实现java.io.Serializable
答案 2 :(得分:0)
大多数情况下,只会引发服务器端异常,触发onFailure()
方法。
尝试在服务器端放置断点。这应该可以帮助你找出问题所在。