GWT class method of different class not calling & getting UmbrellaException

烈酒焚心 提交于 2019-12-11 05:02:42

问题


I want to call method from different class for navigation of pages.

So I'm passing "UserID" & "Password" for authentication and after that it will navigate to next page.

My Code:

public class Test2 extends Composite {

HelloUIBinder hb;

AnimationHelper animationHelper;
TestPage tp;

String strEmail, strPass;

private static Test2UiBinder uiBinder = GWT.create(Test2UiBinder.class);

interface Test2UiBinder extends UiBinder<Widget, Test2> {
}

@UiField TextBox txtEmail;
@UiField PasswordTextBox txtPass;
@UiField Button btnLogin;

public Test2() {
    initWidget(uiBinder.createAndBindUi(this));

    btnLogin.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            // TODO Auto-generated method stub

            strEmail = txtEmail.getText().toString();
            strPass = txtPass.getText().toString();

            Window.alert(strEmail);
            Window.alert(strPass);

            GWT.setUncaughtExceptionHandler(new GWT.UncaughtExceptionHandler() {

                @Override
                public void onUncaughtException(Throwable e) {
                    // TODO Auto-generated method stub
                    Throwable un = unwrap(e);

                    Window.alert(un.toString());
                }
            });

            hb.onLogin(strEmail, strPass);
        }
    });
}

public Throwable unwrap(Throwable e)
{
    if(e instanceof UmbrellaException)
    {
        UmbrellaException ue = (UmbrellaException) e;
        if(ue.getCauses().size() == 1)
        {
            return unwrap(ue.getCauses().iterator().next());
        }
    }
    return e;
}
}

By this code, I want to call onLogin() method of HelloUIBinder class by passing two parameters.

Code for onLogin :

public void onLogin(String email, String pass)
{
    Window.alert(email);
    Window.alert(pass);

    if(email == "abc@yahoo.com" && pass == "abc123")
    {
        RootPanel.get().clear();

        tp = new TestPage();
        RootPanel.get().add(tp);

        animationHelper.goTo(tp, Animation.SLIDE);
    }
    else
    {
        Window.alert("Authentication Failed");
    }
}

But, while running application I'm getting Error Message:

"com.google.gwt.core.client.JavaScriptException: (TypeError): 'null' is not an object"

So what's an issue regarding this error ?

Please tell me any solution as soon as possible.

Thanks in advance.


回答1:


Essentially we have a NullPointerException. The only thing that can be null in onLogin seems to be animationHelper so far and, you didn't post any code to initialize it. However, things would be more relyable having a stacktrace. You should really change your code to deliver the trace. If you need more information you should

  • Post the stacktrace
  • Post the code used to initialize animationHelper


来源:https://stackoverflow.com/questions/12171744/gwt-class-method-of-different-class-not-calling-getting-umbrellaexception

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!