当前位置: 首页 > 知识库问答 >
问题:

我可以为Spring Boot的嵌入式tomcat启用tomcat manager应用程序吗?

支嘉祥
2023-03-14

我正在做一个研究项目,以确定我们可以在多大程度上使用Spring Boot配置嵌入式Tomcat。我被要求调查的一个项目是关于我们是否仍然可以使用应用程序管理器。我没有一个具体的用例来解释我们为什么要使用嵌入tomcat的应用程序管理器,所以也许这使得这个问题无法回答:

Spring Boot使用的嵌入式Tomcat7是否包含一个tomcat manager应用程序,如果不包含,添加/启用它需要什么?

共有1个答案

司英飙
2023-03-14

Spring Boot使用的嵌入式Tomcat7是否包含tomcat manager应用程序

不,没有,我也不确定添加它是否有意义。

manager应用程序的一个主要功能是允许您在不停止容器的情况下启动和停止单个应用程序,以及部署和取消部署单个应用程序。当您使用Spring Boot with embedded Tomcat时,应该将应用程序和容器视为单个实体,因此启动或停止应用程序和启动或停止容器是同一件事。

如果您选择不注意上面的内容,那么添加manager应用程序是很容易的(尽管我不能保证它都能正常工作--我把它留给(鲁莽的)读者做一个练习):

@Bean
public EmbeddedServletContainerFactory servletContainer() {
    return new TomcatEmbeddedServletContainerFactory() {
        @Override
        protected TomcatEmbeddedServletContainer getTomcatEmbeddedServletContainer(
                Tomcat tomcat) {
            tomcat.addUser("admin", "secret");
            tomcat.addRole("admin", "manager-gui");

            try {
                tomcat.addWebapp("/manager", "/path/to/manager/app");
            }
            catch (ServletException ex) {
                throw new IllegalStateException("Failed to add manager app", ex);
            }
            return super.getTomcatEmbeddedServletContainer(tomcat);
        }
    };
}

在manager应用程序使用JSP时,您还需要依赖于Jasper。假设您正在使用Maven:

<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
</dependency>
 类似资料:
  • 我的程序编译了所有内容,我没有出错,但我实际上期望tomcat应该永久在端口8080上。输出中也没有Spring。在另一个项目中,我做的一切都很好。谢谢你帮助我。 我的父母: 我的tarter.class: 我的Starter-Pom: 控制台输出: 然后什么都不会发生了。谢谢你的帮助。

  • 这是pom.xml的配置: 编辑:我在日志顶部有以下stacktrace:

  • 我有时会在pom中看到以下声明。xml。。。 如您所见,sping-boo-starter-web被声明为tomcat-embed-jasper。 是不是sping-boo-starter-web已经有一个嵌入式tomcat了?为什么一些开发人员仍然声明tomcat-embed-jasper以及boot-starter-web?还是有什么原因?

  • 我试图使用Intellij启动一个Spring应用程序,但我得到了下面的错误。我尝试将Tomcat依赖项放在pom.xml中,但这并不奏效(我后来也发现不需要这样做)。 应用程序应该可以正常工作,因为它已经在一个同事的电脑上工作了,所以我不太确定为什么我会得到这个错误。我已经尝试了几个修复,我在这里遇到了,但没有一个奏效。下面是我的:

  • 我是springboot的新手,目前正在尝试调试spring boot应用程序。有什么办法可以做到吗?

  • 我正试图将运行在tomcat上的现有应用程序更改为SpringBoot。它一直运行到真正的SpringBoot启动。我有一个类似的应用程序运行在SpringBoot上。这就是我知道它一直运行到Springboot的原因。 我的主要方法: 我尝试使用@componentscan运行main方法,该方法具有如下所示的basePackages: 这无济于事。我尝试在main类的顶部添加@SpringBo