无法使用 Spring + Web Servlet 3.0 加载 vaadinBootstrap.js

Faild to load vaadinBootstrap.js with Spring + WebServlet 3.0

我正在使用 Vaadin 7.7 和 SpringFramework 以及 Maven。

我上次做的代码可以,今天不行了。 错误信息是 Failed to load bootstrap javascript : ./VAADIN/vaadinBootstrap.js?v=7.7.0.

我在网上搜索过,找到了这个。 Vaadin's vaadinBoootstrap.js

我说我需要 session-config web.xml。但是,我没有 web.xml,因为我使用的是 servlet 版本 3.X。所以我将此语句添加到我的 WebApplicationInitializer。我的代码如下。

public class FarmInitializer implements WebApplicationInitializer {
    static private Logger logger = LoggerFactory.getLogger(Logger.class);

    @Override
    public void onStartup(ServletContext arg0) throws ServletException {
        System.out.println("=== Starts ===");
        AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
        ctx.register(ServletConfig.class);
        ctx.register(FileConfig.class);
        ctx.register(DBConfig.class);


        //Solution of vaadinBootstrap.js?
        Set<SessionTrackingMode> sessionConfigSet = new HashSet<>();
        sessionConfigSet.add(SessionTrackingMode.COOKIE);
        arg0.setSessionTrackingModes(sessionConfigSet);

        arg0.addListener(new ContextLoaderListener(ctx));
        registerServlet(arg0);
        System.out.println("=== Ends ===");
    }

    private void registerServlet(ServletContext ctx){
        Dynamic dispatcher = ctx.addServlet("vaadin", SpringVaadinServlet.class);
        dispatcher.addMapping("/");
        dispatcher.setLoadOnStartup(0);
        logger.info("=== DONE ===");
    }
}

但是还是不行。这个问题有什么解决办法吗? 我的服务器是 Tomcat 7.X。感谢您的帮助!

您是否尝试将 vaadin servlet 映射为 /*(而不是 /)或为 /VAADIN/* 添加映射

dispatcher.addMapping("/*");