当前位置: 首页 > 面试题库 >

更改部署为War的Spring Boot应用程序的默认欢迎页面

海嘉赐
2023-03-14
问题内容

我试图找到一种方法来更改作为生产环境中的战争而部署的spring-boot应用程序的默认欢迎页面,但是如果没有web.xml文件,我将找不到一种方法。

根据文档,我们可以使用带有以下代码的EmbeddedServletContainerFactory来执行此操作:

@Bean
public EmbeddedServletContainerFactory servletContainer() {

    TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();

    TomcatContextCustomizer contextCustomizer = new TomcatContextCustomizer() {
        @Override
        public void customize(Context context) {
            context.addWelcomeFile("/<new welcome file>");
        }
    };
    factory.addContextCustomizers(contextCustomizer);

    return factory;
}

虽然,当我们创建一个war文件并将其部署到tomcat而不使用嵌入式Tomcat时,它没有做任何事情。

任何的想法?如果我们确实需要添加一个web.xml文件,该如何做并且仍然使用spring boot?我们是否应该将Application bean(带有main方法)指定为DispatcherServlet的应用程序上下文?该文档对此不太清楚。

较旧的Servlet容器不支持Servlet 3.0中使用的ServletContextInitializer引导过程。您仍然可以在这些容器中使用Spring和Spring Boot,但是您将需要向应用程序中添加web.xml并将其配置为通过DispatcherServlet加载ApplicationContext。

提前致谢!


问题答案:

这并不难…你只需要转发默认映射…

@Configuration
public class DefaultView extends WebMvcConfigurerAdapter{

    @Override
    public void addViewControllers( ViewControllerRegistry registry ) {
        registry.addViewController( "/" ).setViewName( "forward:/yourpage.html" );
        registry.setOrder( Ordered.HIGHEST_PRECEDENCE );
        super.addViewControllers( registry );
    }
}


 类似资料:
  • 完成干净的构建后,我将war文件复制到Tomcat的文件夹中。但是部署会发生两次,并且在上下文已经存在的情况下以异常结束。我错过了什么? 非常感谢您的帮助。

  • 本文向大家介绍怎么将 SpringBoot web 应用程序部署为 JAR 或 WAR 文件?相关面试题,主要包含被问及怎么将 SpringBoot web 应用程序部署为 JAR 或 WAR 文件?时的应答技巧和注意事项,需要的朋友参考一下 通常,我们将 web 应用程序打包成 WAR 文件,然后将它部署到另外的服务器上。这样做使得我们能够在相同的服务器上处理多个项目。当 CPU 和内存有限的情

  • 尝试在Heroku云中部署Spring Boot应用程序,但编译java应用程序时出现错误,但在我的本地计算机中运行良好。

  • 议题背景: 我开始使用OpenShift的目的是--表面上--通过OpenShift安装和管理Liferay6.2门户。为此,我使用jbossas-7和PostgreSQL-9.2墨盒创建了一个OpenShift应用程序--与“DIY墨盒”方法相比,我目前更喜欢官方墨盒,即在OpenShift上安装应用服务器,特别是JBoss AS7,理想情况下在该应用服务器中安装Liferay。 按照Lifer

  • 问题内容: 我正在使用NetBeans,试图将熟悉的Java咖啡杯图标更改为我保存在jar文件中资源目录中的png文件。我发现许多不同的网页声称它们都有解决方案,但是到目前为止,它们都无法正常工作。 这是我目前所拥有的(省略try-catch块): 包含此代码的类在 com.xyz 包中,如果有区别的话。该类还扩展了JFrame。此代码在第一行上引发MalformedUrlException。 有