我爱Java系列之---【SpringBoot打成war包部署】

1.把下面这句话放入pom.xml中,放上边

<packaging>war</packaging>

2.war包要部署到tomcat服务器中,而springboot中自带了一个,这时候要去掉。

        <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>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>    

3. 注册启动类

第一种方式:创建 ServletInitializer.java,继承 SpringBootServletInitializer ,覆盖 confifigure(),把启动类 Application 注

册进去。外部 Web 应用服务器构建 Web Application Context 的时候,会把启动类添加进去。

public class ServletInitializer extends SpringBootServletInitializer {   @Override
  protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
  return builder.sources(DemoApplication.class);
  }
}

第二种方式:直接改写启动类

@SpringBootApplication
public class Application extends SpringBootServletInitializer{
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
            return builder.sources(Application.class);
        }
}

4.在pom.xml文件中最下面加上这个maven插件,注意不能直接用idea中的maven工具打包,必须用这个。

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

5.清理项目,再打包,把打好的war包复制到tomcat下的webapp目录下,回到bin目录,cmd启动命令窗口,输入startup.bat。启动后就可以在浏览器端访问了。记得加上包名才可以访问。例:http://localhost:8080/day01_springboot_demo01-1.0-SNAPSHOT/hello

# 或者执行下面的命令 排除测试代码后进行打包 可以在idea中右边的maven命令栏的package命令上配置上下面这句话,也可以直接clean,package
clean package -Dmaven.test.skip=true         

原文地址:https://www.cnblogs.com/hujunwei/p/11295740.html

时间: 2024-07-30 00:16:24

我爱Java系列之---【SpringBoot打成war包部署】的相关文章

记录一次SpringBoot打成war包部署到tomcat启动报错

启动时,报错信息如下: 28-Sep-2018 16:55:41.567 严重 [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal Error during ServletContainerInitializer processing javax.servlet.ServletException: Failed to instantiate WebApplicationInitializer

SpringBoot之打成war包部署到Tomcat

正常情况下SpringBoot项目是以jar包的形式,正常情况下SpringBoot项目是以jar包的形式,并且SpringBoot是内嵌Tomcat服务器,所以每次重新启动都是用的新的Tomcat服务器.正因如此,也出现了一个问题:    上传到项目的文件,如果是保存在项目中的,那么重启过后文件就会丢失.比如我们上传了一个头像,重启项目后,这个头像就没了.而如果将文件保存在本地磁盘中的话,html中标签没办法获取(当然,企业项目中一般是有专门的图片服务器的).因此,我们才需要将SpringBo

osgi应用使用桥接的方式打成war包部署在websphere上时遇到的与cxf相关的问题

原来我们的程序都是基于Equinox架构的,但是后面因为要实现打成war包在中间件中部署的需求,使用了eclipse官方提供的桥接方式实现. 桥接的部分后面有时间了我专门写一个文章来说,不明白的暂时请参考eclipse官方文档.这里主要说一下已经桥接成功,但是在使用CXF时遇到问题的情况. 本来在其他中间件里跑得好好的程序,一放到websphere_v8里,就各种报错,都是与axis2有关的,但是我们的项目并没有使用axis2,而是使用cxf. 报错类似如下(我有3个环境,每个报的错都不同,不过

Web项目打成war包部署到tomcat时报MySQL Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: YES)错误解决方案

Web项目使用使用root账号root密码进行部署,通过Eclipse加载到Tomcat服务器可以发布成功,打成war包放到tomcat的webapps目录无法发布成功,报错: jdbc.properties涉及Mysql配置: 错误很明显,与MySQL密码有关,但是两种方式部署项目使用的jdbc.properties配置文件是一样的.所以肯定不是密码不对引起的,只好找度娘,O(∩_∩)O哈哈~. 网上大部分帖通过运行mysql -u root -p命令登录时也会报这个错误,所以,我就尝试这种方

Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败解决方案

即上篇通过将web项目打成war包部署到Tomcat服务器,解决mysql问题后,又出现了新问题,真是一波三折,所以将解决过程分享给大家,希望能帮助到小伙伴们~ 将打好的war包拷贝到Tomcat的webapps目录,然后在Tomcat的bin目录找到startup.bat批处理文件,直接双击执行,结果运行几秒后直接闪退,顿时有种不好的预感,在浏览器访问web项目,结果连localhost:8080都无法访问,web项目未发布成功,一脸懵逼~ 没有日志看不到为啥发布不成功额,想了想,可以稍微修改

springboot打成war包并携带第三方jar包

1.修改打包方式为war <packaging>war</packaging> 2.添加第三方依赖的jar到pom 我的第三方jar包在resoueces目录下的lib下(目录可以是其他路径,pom引包要正确) <dependency> <groupId>otc</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version

将web项目打成war包部署在tomcat步骤

1.将自己的项目打成war包. 2.将打包好的war复制到${tomcat.home}/webapps项目下. 3.在${tomcat.hom}/conf目录下打开server.xml文件,找到Host节点,在Host节点下添加: <Context docBase="D:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\Products.war" path="/Products" relo

spring-boot打成war包放入tomcat运行

一.application集成SpringBootServletInitializer(重写configure方法) import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; impor

springboot创建war包部署在外部tomcat上

今天我想跟大家分享的是使用springboot如何创建可部署在外部Tomcat的war包?网上都讲了很多,不过我还是要记录一下: springboot官方文档上面写的已经很清楚了(85.1 Create a deployable war file) 1.主类继承SpringBootServletInitializer且覆盖它的configure 方法. @SpringBootApplicationpublic class Application extends SpringBootServlet