girl
girl

Reputation: 19

How can I determine why onFailure is triggered in GWT-RPC?

I have a project that does 2 RPC calls and then saves the data that the user provided in tha datastore. The first RPC call works ok, but from the second I always recieve the onFailure() message. How can I determine why the onFailure() is triggered? I tried caught.getCause() but it doesn't return anything.

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!");
    }
});

Upvotes: 2

Views: 1185

Answers (3)

enrybo
enrybo

Reputation: 1785

Most of the time it will just be a server side exception being raised which fires the onFailure() method.

Try putting breakpoints on your server side. That should help you pinpoint what's going wrong.

Upvotes: 0

Christian Kuetbach
Christian Kuetbach

Reputation: 16060

GWT-rpc is not not easy to ebug if an error occurs.

The easiest part is th check if the Exception is part of StatusCodeException.

  • A Statuscode of 404 means, you are pointing to a wrong endpoint
  • 0 means, that
    • The searver is unreachable
    • You don't have permissions to check, if the server is available (X-domain-request)

You can use the Chrome-Web-Inspector to bedug GWT-RPC

You should be able to see all calls from the browser to you backend.

The most common failures are because of serialization of object. You have to ensure, that all dtransferred object implement java.io.Serializable

Upvotes: 0

H. Aghassi
H. Aghassi

Reputation: 231

Throwable instance is instance of an Exception. You can check if it is a custom Exception like this:

if (caught instanceOf CustomException){

or if you want to show the message of exception you can use the getMessage():

Window.alert("Failure: " + caught.getMessage());

Upvotes: 1

Related Questions