栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在带有嵌入式tomcat的Spring Boot应用程序中运行hawt.io

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在带有嵌入式tomcat的Spring Boot应用程序中运行hawt.io

我遇到了完全相同的问题-这就是我解决问题的方法。

我发现spring-boot不支持旧版的web.xml配置,这是

maven-war-plugin
在您自己的战争上将hawtio-
web项目覆盖时得到的。产生的战争包含您的Web代码以及hawtio-Web存档的内容。

参见http://docs.spring.io/spring-boot/docs/current/reference/html/howto-
traditional-deployment.html

因此,我在spring开始了配置servlet和过滤器的过程。

首先将必要的依赖项添加到pom.xml

<dependencies>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-web</artifactId>        <version>${spring-boot-version}</version>    </dependency>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-actuator</artifactId>        <version>${spring-boot-version}</version>    </dependency>    <dependency>        <groupId>io.hawt</groupId>        <artifactId>hawtio-springboot</artifactId>        <version>${hawtio.version}</version>    </dependency>    <dependency>        <groupId>io.hawt</groupId>        <artifactId>hawtio-core</artifactId>        <version>${hawtio.version}</version>    </dependency></dependencies>

我正在使用以下版本:

<hawtio.version>2.0.0</hawtio.version><spring-boot.version>1.2.3.RELEASE</spring-boot.version>

添加一个Configuration类来配置servlet和过滤器:

@Configurationpublic class HawtioConfiguration extends WebMvcConfigurerAdapter {    @Override    public void addResourceHandlers(final ResourceHandlerRegistry registry) {        registry.addResourceHandler("/hawtio/plugins/**").addResourceLocations("/app/", "classpath:/static/hawtio/app/");        registry.addResourceHandler("/hawtio/**").addResourceLocations("/", "/app/", "classpath:/static/hawtio/",     "classpath:/static/hawtio/app/");    }    @Override    public void addViewControllers(final ViewControllerRegistry registry) {        registry.addViewController("/hawtio/plugin").setViewName("forward:/plugin");        registry.addViewController("/hawtio/").setViewName("redirect:/hawtio/index.html");    }    @Bean    public ServletRegistrationBean userServlet() {        return new ServletRegistrationBean(new UserServlet(), "/user/*", "/hawtio/user/*");    }    @Bean    public ServletRegistrationBean jolokiaproxy() {        return new ServletRegistrationBean(new ProxyServlet(), "/hawtio/proxy/*");    }    @Bean    public ServletRegistrationBean kubeservice() {        return new ServletRegistrationBean(new ServiceServlet(), "/hawtio/service/*");    }    @Bean    public ServletRegistrationBean kubepod() {        return new ServletRegistrationBean(new PodServlet(), "/hawtio/pod/*");    }    @Bean    public ServletRegistrationBean fileupload() {        return new ServletRegistrationBean(new UploadServlet(), "/hawtio/file-upload/*");    }    @Bean    public ServletRegistrationBean loginservlet() {        return new ServletRegistrationBean(new LoginServlet(), "/hawtio/auth/login/*");    }    @Bean    public ServletRegistrationBean logoutservlet() {        return new ServletRegistrationBean(new LogoutServlet(), "/hawtio/auth/logout/*");    }    @Bean    public ServletRegistrationBean keycloakservlet() {        return new ServletRegistrationBean(new KeycloakServlet(), "/hawtio/keycloak/*");    }    @Bean    public ServletRegistrationBean exportcontextservlet() {        return new ServletRegistrationBean(new ExportContextServlet(), "/hawtio/exportContext/*");    }    @Bean    public ServletRegistrationBean mavenSource() {        return new ServletRegistrationBean(new JavaDocServlet(), "/hawtio/javadoc/*");    }    @Bean    public ServletRegistrationBean contextFormatter() {        return new ServletRegistrationBean(new ContextFormatterServlet(), "/hawtio/contextFormatter/*");    }    @Bean    public ServletRegistrationBean gitServlet() {        return new ServletRegistrationBean(new GitServlet(), "/hawtio/git/*");    }    @Bean    public ServletListenerRegistrationBean hawtioContextListener() {        return new ServletListenerRegistrationBean<>(new HawtioContextListener());    }    @Bean    public ServletListenerRegistrationBean fileCleanerCleanup() {        return new ServletListenerRegistrationBean<>(new FileCleanerCleanup());    }    @Bean    public FilterRegistrationBean redirectFilter() {        final FilterRegistrationBean filter = new FilterRegistrationBean();        filter.setFilter(new RedirectFilter());        filter.setUrlPatterns(Collections.singletonList("/hawtio/*"));        return filter;    }    @Bean    public FilterRegistrationBean sessionExpiryFilter() {        final FilterRegistrationBean filter = new FilterRegistrationBean();        filter.setFilter(new SessionExpiryFilter());        filter.setUrlPatterns(Collections.singletonList("/hawtio/*"));        return filter;    }    @Bean    public FilterRegistrationBean cacheFilter() {        final FilterRegistrationBean filter = new FilterRegistrationBean();        filter.setFilter(new CacheHeadersFilter());        filter.setUrlPatterns(Collections.singletonList("/hawtio/*"));        return filter;    }    @Bean    public FilterRegistrationBean CORSFilter() {        final FilterRegistrationBean filter = new FilterRegistrationBean();        filter.setFilter(new CORSFilter());        filter.setUrlPatterns(Collections.singletonList("/hawtio/*"));        return filter;    }    @Bean    public FilterRegistrationBean XframeOptionsFilter() {        final FilterRegistrationBean filter = new FilterRegistrationBean();        filter.setFilter(new XframeOptionsFilter());        filter.setUrlPatterns(Collections.singletonList("/hawtio/*"));        return filter;    }    @Bean    public FilterRegistrationBean AuthenticationFilter() {        final FilterRegistrationBean filter = new FilterRegistrationBean();        filter.setFilter(new AuthenticationFilter());        filter.setUrlPatterns(Arrays.asList("/hawtio/auth/*", "/jolokia/*", "/hawtio/upload/*", "/hawtio/javadoc/*"));        return filter;    }}

我已经用jetty和tomcat进行了测试-
并且可以同时使用。我也已将此提交为hawtio的补丁程序,但尚未发布。您可以自己编译hawtio并导入HawtioConfiguration:https :
//github.com/hawtio/hawtio/blob/master/hawtio-
springboot/src/main/java/io/hawt/springboot/HawtioConfiguration.java

我还更新了hawtio-
sample以使用HawtioConfiguration:https : //github.com/hawtio/hawtio/tree/master/hawtio-sample-
springboot

现在,我可以通过访问http:// localhost:8080 / hawtio /
index.html来访问hawtio

希望这可以帮助。

祝好运。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/615544.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号