zoukankan      html  css  js  c++  java
  • Spring Boot 打war包并利用docBase指定根目录为打包的工程

    指定根目录有两种方式

    1:直接将打的war包名称定义为ROOT

    2:利用docBase

    比如笔者war包名为xibu.war,将该war包丢到/Users/archerlj/Library/apache-tomcat-8.5.8/webapps目录下即可。
    为了访问方便,我修改了tomcat安装目录下的conf文件下的server.xml文件:

    在该文件最后的Host节点添加如下:
    <!-- path留空代表访问域名后面不需要带项目的名称 -->
    <Context path="" docBase="xibu" reloadable="false" />
    path是虚拟目录。 docBase是真实目录,可以是相对路径或者绝对路径,这里因为xibu.war放在webapp下面,所以直接用了相对路径。

    参考:Spring Boot 打war包
    1. 将SpringBoot的项目的打包方式设置为war
      <groupId>com.example</groupId>  
      <artifactId>demo</artifactId>  
      <version>1.0.0</version>  
      <packaging>war</packaging>
    2. 移除内嵌的tomcat模块,但是为了我们在本机测试方便,我们还需要引入它,所以配置如下
      <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. 添加tomcat-servelt-api依赖
      <dependency>  
            <groupId>org.apache.tomcat</groupId>  
            <artifactId>tomcat-servlet-api</artifactId>  
            <!--此处跟随服务器tomcat版本-->
            <version>7.0.42</version>  
            <scope>provided</scope>  
      </dependency>
    4. 修改入口方法 继承一个SpringBootServletInitializer类,并且覆盖configure方法
      package com.example;  
        
      import org.springframework.boot.SpringApplication;  
      import org.springframework.boot.autoconfigure.SpringBootApplication;  
      import org.springframework.boot.builder.SpringApplicationBuilder;  
      import org.springframework.boot.web.support.SpringBootServletInitializer;  
      import org.springframework.cache.annotation.EnableCaching;  
        
      @SpringBootApplication  
      @EnableCaching  
      public class SpringDataJpaExampleApplication extends SpringBootServletInitializer {  
        
          @Override  
          protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {  
              return application.sources(SpringDataJpaExampleApplication.class);  
          }  
        
          public static void main(String[] args) {  
              SpringApplication.run(SpringDataJpaExampleApplication.class, args);  
          }  
      }
    5. 添加war插件,用来自定义打包以后的war包的名称
      <build>
              <finalName>springboot</finalName>
              <!-- 打包项目 mvn clean package -->
                  <plugin>
                      <groupId>org.springframework.boot</groupId>
                      <artifactId>spring-boot-maven-plugin</artifactId> 
                      <configuration>  
                            <warSourceExcludes>src/main/resources/**</warSourceExcludes>  
                            <warName>springboot</warName>  
                      </configuration>
                  </plugin>
      </build>

       

      引入上面这个插件,是避免maven打包的时候为我们默认的一个带有版本号的war包名称,因为我们部署到tomcat以后,在访问项目的时候,需要用到这个war包的名称

      6.部署至tomcat服务器

      大部分情况下,在进行工程开发的时候,没有配置server.servlet.context-path

      此时有两种办法:1.直接打包为ROOT.war

                              2.更改docBase

      参考:SpringBoot war包部署到tomcat

               关于Tomcat虚拟主机(appBase,docBase)的配置问题

      比如笔者war包名为xibu.war,将该war包丢到/Users/archerlj/Library/apache-tomcat-8.5.8/webapps目录下即可。
      为了访问方便,我修改了tomcat安装目录下的conf文件下的server.xml文件:

      在该文件最后的Host节点添加如下:
                  <!-- path留空代表访问域名后面不需要带项目的名称 -->
                  <Context path="" docBase="xibu" reloadable="false" />
      path是虚拟目录。
      docBase是真实目录,可以是相对路径或者绝对路径,这里因为xibu.war放在webapp下面,所以直接用了相对路径。
      

      这样,启动tomcat之后就可以直接通过访问http://localhost:8080来访问你的项目了。

      好了,cd到tomcat的bin目录下 sudo sh startup.sh启动tomcat就可以了,这时候访问http://localhost:8080就能访问部署的项目了(笔者修改了端口:8081)

  • 相关阅读:
    31个是你终生受用的爱情原则
    毕业后的五年拉开大家差距的原因在哪里?
    如何学习编程
    让人印象深刻的回答
    Android签名机制之---签名验证过程具体解释
    移动APP怎样保存用户password
    算法导论学习之线性时间求第k小元素+堆思想求前k大元素
    C#软件开发实例.私人订制自己的屏幕截图工具(十)在截图中包括鼠标指针形状
    Windows server 2003 + IIS6 搭建Asp.net MVC执行环境
    java移位运算符实验程序:&lt;&lt;(左移)、&gt;&gt;(带符 号右移)和&gt;&gt;&gt;(无符号右移)
  • 原文地址:https://www.cnblogs.com/huanghongbo/p/9022507.html
Copyright © 2011-2022 走看看