Spring VaadinServlet阻塞Spring Boot功能

时间:2014-04-29 14:34:10

标签: vaadin spring-boot

在我们的Muhuru-Bay-Microgrid-Dashboad项目中,我们使用https://github.com/xpoft/spring-vaadin中的代码试图让Spring Boot和Vaadin很好地发挥作用。问题 - 通过这种方法,我们无法在启动时访问许多其他休息服务Spring Boot寄存器,例如

/configprops /health /dump /info /trace /mappings /error /autoconfig

我们的启动代码如下:

@Bean
public ServletRegistrationBean servletRegistrationBean() {
    final ServletRegistrationBean servletRegistrationBean
            = new ServletRegistrationBean(
            new ru.xpoft.vaadin.SpringVaadinServlet(),
            "/*", "/VAADIN/*");
    return servletRegistrationBean;
}

当我们尝试访问Spring Boot的注册REST服务时,我们会被重定向到/ error - 这也无法正常工作。任何提示都非常感谢。

2 个答案:

答案 0 :(得分:1)

尝试使用此插件集成Spring Boot和Vaadin: https://github.com/peholmst/vaadin4spring 它仍处于测试阶段,但在我看来它比Xpoft插件更好。

答案 1 :(得分:1)

在Spring Boot中使用https://github.com/peholmst/vaadin4spring,在访问应用程序的其他REST服务时遇到了同样的问题。 对我有用的是在spring环境中设置VaadinServletConfiguration.SERVLET_URL_MAPPING_PARAMETER_NAME以将Vaadin UI发送到不同的上下文路径(/ ui / *):

@SpringBootApplication
public class AppSpringConfig {
    public static void main(String[] args) {
        new SpringApplicationBuilder(AppSpringConfig.class).initializers(new ApplicationContextInitializer<ConfigurableApplicationContext>() {
            public void initialize(ConfigurableApplicationContext applicationContext)
            {
                ConfigurableEnvironment appEnvironment = applicationContext.getEnvironment();
                Properties props = new Properties();
                props.put(VaadinServletConfiguration.SERVLET_URL_MAPPING_PARAMETER_NAME, "/ui/*");
                PropertySource< ? > source = new PropertiesPropertySource("vaadin", props);
                appEnvironment.getPropertySources().addFirst(source);
            }
        }).run(args);
    }
}