未检测到自定义SpringVaadinServlet

时间:2016-11-18 15:39:09

标签: java spring-boot vaadin vaadin7

我试图在我的Vaadin应用程序中使用自定义SpringVaadinServlet(使用Spring Boot)。这是一个示例应用,其中未检测到SpringVaadinServlet。我已经阅读了Spring Vaadin教程,但仍无法使其工作。这是代码(我没有XML conf):

@SpringBootApplication
public class VaadinSb2Application {

    public static void main(String[] args) {
        SpringApplication.run(VaadinSb2Application.class, args);
    }

    @Configuration
    @EnableVaadin
    public class AppConfig {}

    @SpringUI
    public class MyUI extends UI {

        private static final long serialVersionUID = 1L;

        @Override
        protected void init(VaadinRequest request) {
            setContent(new Label("Welcome!"));
        }
    }

    @WebServlet(urlPatterns = "/*", name = "MyServlet", asyncSupported = true)
    public static class MyServlet extends SpringVaadinServlet {

        private static final long serialVersionUID = 1L;

        public MyServlet() {
            System.out.println("servlet constr");
        }

        @Override
        protected void servletInitialized() throws ServletException {
            super.servletInitialized();
            System.out.println("servlet init");
        }
    }
}

以下是Vaadin文档的链接: http://vaadin.github.io/spring-tutorial/ https://vaadin.com/docs/-/part/framework/advanced/advanced-spring.html

我使用Spring Boot 1.4.2和最新的Vaadin版本。

1 个答案:

答案 0 :(得分:2)

使用Spring引导和Vaadin时,不应使用@WebServlet注释注册servlet。以下应该适用于覆盖默认的Vaadin Spring Boot servlet:

@Component("vaadinServlet")
public class MySpringVaadinServlet extends SpringVaadinServlet {
}