2016-11-18 83 views
0

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

@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 1.4.2引导和最新Vaadin版本。

+0

栈溢出真的是一个非常非常好的网站,但是Vaadin问题,你可能会更好使用他们的论坛(https://vaadin.com/论坛#) –

回答

2

当您将Vaadin与Spring Boot一起使用时,您不应该使用@WebServlet注释来注册servlet。下面应该工作到覆盖默认Vaadin春天启动的servlet:

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

非常感谢,它的工作! – nyg