springboot打war包部署到外置tomcat容器的方法

目录
  • 一、修改打包方式
  • 二、 排除内置tomcat的依赖
  • 三、新增加一个类继承SpringBootServletInitializer实现configure:
  • 四、build要有finalName标签
  • 五、打包与运行

打war包部署到外置tomcat容器

一、修改打包方式

<packaging>war</packaging>

将上面的代码加入到pom.xml文件刚开始的位置,如下:

二、 排除内置tomcat的依赖

我们使用外置的tomcat,自然要将内置的嵌入式tomcat的相关jar排除。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>

三、新增加一个类继承SpringBootServletInitializer实现configure:

为什么继承该类,SpringBootServletInitializer源码注释:
Note that a WebApplicationInitializer is only needed if you are building a war file and deploying it.
If you prefer to run an embedded web server then you won’t need this at all.
注意,如果您正在构建WAR文件并部署它,则需要WebApplicationInitializer。如果你喜欢运行一个嵌入式Web服务器,那么你根本不需要这个。

public class ServletInitializer extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        //此处的Application.class为带有@SpringBootApplication注解的启动类
        return builder.sources(BootLaunchApplication.class);
    }
}

注意事项:
使用外部Tomcat部署访问的时候,application.properties(或者application.yml)中的如下配置将失效,请使用外置的tomcat的端口,tomcat的webapps下项目名进行访问。

server.port=
server.servlet.context-path=

四、build要有finalName标签

pom.xml中的构建build代码段,要有应用最终构建打包的名称。

    <finalName>boot-launch</finalName>

五、打包与运行

war方式打包,打包结果将存储在项目的target目录下面。

mvn clean package -Dmaven.test.skip=true

然后将war包copy到外置Tomcat webapps目录里面。在外置tomcat中运行:${Tomcat_home}/bin/目录下执行startup.bat(windows)或者startup.sh(linux),然后通过浏览器访问应用,测试效果。

需要注意的是

  • 在boot-launch.war在tomcat webapps目录里面解压到boot-launch文件夹。所以当你访问应用的时候,必须使用http://localhost:8888/boot-launch/template/jsp,不能是:http://localhost:8888/template/jsp 。会报404错误。
  • jsp静态资源引用也必须是:/boot-launch/image/xxxx.png,不能是/image/xxxx.png
  • JSP的war包中,webjars的资源使用方式不再被支持

到此这篇关于springboot打war包部署到外置tomcat容器的文章就介绍到这了,更多相关springboot]打war包部署tomcat容器内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • centos环境下使用tomcat 部署SpringBoot的war包

    准备war包 一.准备好已有的SpringBoot工程,在pom中添加依赖 1)设置打包格式为war <packaging>war</packaging> 2)排除SpringBoot内嵌的tomcat <!-- 以war包部署的形式需要排除内嵌的tomcat --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-bo

  • springboot使用war包部署到外部tomcat过程解析

    这篇文章主要介绍了springboot使用war包部署到外部tomcat过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 如果是war包部署到外部tomcat,需要增加SpringBootServletInitializer子类,并重写其configure方法,或者将main函数所在的类继承SpringBootServletInitializer子类,并重写configure方法. @SpringBootApplication //继承S

  • docker安装tomcat并部署Springboot项目war包的方法

    说来也简单,直接上教程吧,博主 1.首先在启动docker service docker start 2.拉取tomcat镜像. docker pull tomcat:8-jdk8 如果不加后面的8-jdk8  标签的话,会默认拉取latest,也就是最新的官方版本 3.安装完成后,做作容器,并启动tomcat docker run --name tomcat -p 8080:8080 如果正常安装后访问ip+端口出现404情况,进入tomcat目录,把原有webapps目录删除,并把webap

  • SpringBoot打成war包在tomcat或wildfly下运行的方法

    springboot默认的打包方式为jar包,jar包的有优点是不需要更改的配置,并且内嵌了tomcat,如果打成jar包直接可以丢到docker中运行测试.但是考虑到前端代码只能打成war包,因此干脆也将后端代码打成war包和前端的代码一起放在tomcat容器中的webapps中运行就好了. SpringBoot打包形式 默认情况下,创建的SpringBoot项目是按照jar包形式来进行打包的.同时,内置了tomcat的容器. 那么,此时如果想让springboot打包成war包,并部署到wi

  • Tomcat启动springboot项目war包报错:启动子级时出错的问题

    今天公司springboot项目准备部署到测试服务器上进行测试,打包好war后放到tomcat里面启动后,前端文件能访问到,但是接口请求一直是404,一直找了很久的原因,tomcat启动是成功的,war打包的时候也提示build success了,tomcat启动日志发现报错: java.lang.IllegalStateException: 启动子级时出错   at org.apache.catalina.core.ContainerBase.addChildInternal(Containe

  • springboot打war包部署到外置tomcat容器的方法

    目录 一.修改打包方式 二. 排除内置tomcat的依赖 三.新增加一个类继承SpringBootServletInitializer实现configure: 四.build要有finalName标签 五.打包与运行 打war包部署到外置tomcat容器 一.修改打包方式 <packaging>war</packaging> 将上面的代码加入到pom.xml文件刚开始的位置,如下: 二. 排除内置tomcat的依赖 我们使用外置的tomcat,自然要将内置的嵌入式tomcat的相关

  • SpringBoot应用部署于外置Tomcat容器的方法

    0x01. 概述 SpringBoot平时我们用的爽歪歪,爽到它自己连Tomcat都自集成了,我们可以直接编写SBT启动类,然后一键开启内置的Tomcat容器服务,确实是很好上手.但考虑到实际的情形中,我们的Tomcat服务器一般是另外部署好了的,有专门的维护方式.此时我们需要剥离掉SBT应用内置的Tomcat服务器,进而将应用发布并部署到外置的Tomcat容器之中,本文就实践一下这个. 0x02. 修改打包方式 修改项目的pom.xml配置,我们修改其打包方式为war方式,如: <groupI

  • SpringBoot中maven项目打成war包部署在liunx服务器上的方法

    说明:Spring Boot由于内嵌了如Tomcat,Jetty和Undertow这样的容器,也就是说可以直接跑起来,用不着再像Spring项目还需要外置的Tomcat等容器来进行部署工作了,通过启动启动类就可以建立独立的Spring应用程序.Spring Boot部署在服务器上主要分为两种方式:一是打成jar包发布,二是打成war包发布,第一种方式只需要在该服务器中运行java -jar+部署项目的名称就可以启动(不要忘了.jar后缀名),操作比较简单,第二种方式操作比较复杂一点,并且是项目发

  • SpringBoot项目War包部署无法注册到Nacos中的解决

    目录 SpringBoot项目War包部署无法注册到Nacos中 问题 解决方案 SpringBoot项目war包部署及出现的问题 1.修改pom文件 2.在启动类或者配置类中继承SpringBootServletInitializer SpringBoot项目War包部署无法注册到Nacos中 注: 其实标题的描述不是很准确,准确的说是已经注册成功并且可以正常访问,但是在服务列表却看不到. 问题 最近在进行Eureka迁移Nacos架构升级的时候,发现有两个之前的旧项目,虽然也是SpringB

  • SpringBoot中maven项目打成war包部署在linux服务器上的方法

    说明:Spring Boot由于内嵌了如Tomcat,Jetty和Undertow这样的容器,也就是说可以直接跑起来,用不着再像Spring项目还需要外置的Tomcat等容器来进行部署工作了,通过启动启动类就可以建立独立的Spring应用程序.Spring Boot部署在服务器上主要分为两种方式:一是打成jar包发布,二是打成war包发布,第一种方式只需要在该服务器中运行java -jar+部署项目的名称就可以启动(不要忘了.jar后缀名),操作比较简单,第二种方式操作比较复杂一点,并且是项目发

  • springboot项目打成war包部署到tomcat遇到的一些问题

    开发环境使用jdk1.8.0_60,把springboot 项目打成war包后, 部署到apache-tomcat-7.0.68时报错如下,换成apache-tomcat-8.0.9解决 org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/my-springboot-web-0.0.1

  • 简单了解springboot的jar包部署步骤

    由于springboot常用war包部署,改为cloud开发模式多端口情况下,部署反而不习惯 毕竟,war包要不要项目名访问都必须放在tomcat的root目录下 而此目录限制只能放置一个项目,并且登录端口限制为tomcat的接口了 因此,jar包部署就成了必然的方式了 1.添加pom设置 静态文件需要访问,所以静态文件webapp下的文件需要重新指定位置,具体配置如下 <resource> <directory>src/main/webapp</directory>

  • Springboot打成war包并在tomcat中运行的部署方法

    把spring-boot项目按照平常的web项目一样发布到tomcat容器下 一.修改打包形式 在pom.xml里设置 <packaging>war</packaging> 二.移除嵌入式tomcat插件 在pom.xml里找到spring-boot-starter-web依赖节点,在其中添加如下代码, <dependency> <groupId>org.springframework.boot</groupId> <artifactId&

  • SpringBoot war包部署到Tomcat服务器

    (1)pom.xml文件修改<packaging>war</packaging>,默认是jar包,<build>节点中增加<finalName>springboot</finalName>,即生成war包的名字,完整pom.xml文件内容如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.

随机推荐