一般来说,我对vaadin和spring boot还比较陌生,所以最近,当我遇到这个问题时,我发现自己连续几个小时绞尽脑汁,不知道该怎么办。我在google和这个论坛上做了很多搜索,但是我对很多推荐感到相当困惑。
我的问题:
因此,我的网站是一个非常基本的天气应用程序,从免费的API获取信息。我的应用程序只有一个页面,它的根类“mainlayout.java”是一个垂直布局,将所有子布局/视图添加到它自己。我的问题是,在我执行以下操作之后,这个类的构造函数似乎给出了一个错误。
启动spring引导服务器(初始化良好,无错误)
打开网站的一个标签页,然后继续localhost:8080
出现错误,堆栈跟踪显示在主要错误的顶部
注意:有时当我重新启动服务器并打开localhost:8080 tab 再说一次,它不会出错。
短错误:
尝试导航到“”时出现异常,异常消息为“error creating bean with name'com.urweather.app.ui.layouts.mainlayout”:通过构造函数示例化bean失败;嵌套异常为org.springframework.beans.beaninstantiationexception:未能示例化[com.urweather.app.ui.layouts.mainlayout]:构造函数引发异常;嵌套异常为java.lang.illegalstateexception:如果不锁定会话,则无法访问vaadinsession或ui中的状态。'
具有构造函数的mainlayout类:
package com.urweather.app.ui.layouts;
import com.urweather.app.ui.views.NavigationView;
import com.vaadin.flow.component.dependency.CssImport;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.router.PageTitle;
import com.vaadin.flow.router.PreserveOnRefresh;
import com.vaadin.flow.router.Route;
import org.springframework.beans.factory.annotation.Autowired;
@Route("")
@PageTitle("Ur Weather App")
@CssImport("./styles/shared-styles.css")
@PreserveOnRefresh
public class MainLayout extends VerticalLayout {
private NavigationView searchBar;
private CurrentInfoLayout currentInfoLayout;
private MoreDetailInfoLayout moreDetailInfoLayout;
@Autowired
public MainLayout(NavigationView searchBar,
CurrentInfoLayout currentInfoLayout,
MoreDetailInfoLayout moreDetailInfoLayout) {
this.searchBar = searchBar;
this.currentInfoLayout = currentInfoLayout;
this.moreDetailInfoLayout = moreDetailInfoLayout;
addClassName("main-layout");
add(this.searchBar, this.currentInfoLayout, this.moreDetailInfoLayout);
}
}
注意:不同的视图/布局类都使用@component,它们的构造函数使用依赖注入注入后端服务等。
任何帮助都将不胜感激!如果我需要提供任何关于这个问题的更多信息,那么我将很乐意这样做。如果你能给我一点提示,告诉我该找什么,我会非常感激的。
暂无答案!
目前还没有任何答案,快来回答吧!