Vaadin + Spring = lambda$0 + NullPointerException



我对Vaadin有问题;这是我的代码:

@SpringView(name = LoginView.VIEW_NAME)
public class LoginView extends Panel implements View {
    private static final long serialVersionUID = 4440163925650357979L;
    public static final String VIEW_NAME = "login";
    @Autowired
    private UiController controller;
    public LoginView() {
        super();
        System.out.println(controller);
    }
}

例外情况如下:

2017-01-17 10:20:32.649 ERROR 10176 --- [nio-8080-exec-8] com.vaadin.server.DefaultErrorHandler    : 
java.lang.NullPointerException: null
    at com.open.belgium.tonyrenard.vaadin.views.LoginView.lambda$0(LoginView.java:33) ~[classes/:na]

不是vaadin的专家,我完全迷失了。依赖性还可以吗?我不知道。。。

它有效,我改变了一点。然后,我回滚,无论如何它都不起作用...你可以帮我吗?

编辑:控制器为空,我不明白为什么...

编辑:我找到了解决方案,我的登录视图没有被Spring实例化。然后,Spring 将不会实例化控制器。我已经在调用器中推迟了新的登录视图,@Autowired工作正常。

您需要实例化您的按钮。

private Button connect = new Button();

其中的一些内容:

event -> {this.controller.entree(log.getValue(), pwd.getValue());}

null.根据堆栈跟踪,唯一可以为空的就是 controller 。如果是logpwd,那么NullPointerException就会发生在UiController::entree内部。

编辑:我在上面错了,这个lamda中的所有内容都可以为空,包括logpwd。假设controller不能为空,因为它被注入了,那么它必须是logpwd

我找到了解决方案,我的 LoginView 没有被 Spring 实例化。

因此,Spring 不会实例化控制器。

我在"调用方"中@Autowired登录视图,控制器的@Autowired工作正常。

相关内容

最新更新