使用Spring + WebServlet 3.0

时间:2016-09-11 07:53:25

标签: java spring twitter-bootstrap tomcat7 vaadin7

我正在使用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。但是,由于我使用的是servlet版本web.xml,因此我没有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。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

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

添加映射
dispatcher.addMapping("/*");