zoukankan      html  css  js  c++  java
  • Tomcat下部署SpringBoot

    SpringBoot默认支持Tomcat7及以上版本(SpringBoot默认支持servlet3.1版本及以上,Tomcat6只支持到servlet2.5)

    测试环境:jdk1.8 + tomcat7+SpringBoot2.1.0.M1  、 jdk1.8+ tomcat8.5+SpringBoot2.1.0.M1


    1、在pom.xml文件中,把打包形式jar改为war

    <packaging>war</packaging>


    2、在pom.xml文件下去除内置tomcat

    这里配置有两种方法,一种是

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>      <!-- 移除嵌入式tomcat插件 -->    <exclusions>        <exclusion>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-tomcat</artifactId>        </exclusion>    </exclusions></dependency>

    这种方法会直接移除内置tomcat,即本地开发也需要用自己配置的tomcat才行,用main方法运行会报错。可参考最后一步进行修改,使用自己配置的tomcat进行开发调试;

    另一种方式是,添加

            <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-tomcat</artifactId>            <scope>provided</scope>        </dependency>

    这种方法依然可以使用内置的tomcat进行开发调试。


    3、添加servlet-api的依赖

    添加servlet-api有两种方式,选其一即可

    <dependency>    <groupId>javax.servlet</groupId>    <artifactId>javax.servlet-api</artifactId>    <version>3.1.0</version>    <scope>provided</scope></dependency>
    <dependency>    <groupId>org.apache.tomcat</groupId>    <artifactId>tomcat-servlet-api</artifactId>    <version>8.0.36</version>    <scope>provided</scope></dependency>


    4、修改启动类

    原先启动SpringBoot是通过main方法启动的,现在需要让启动类继承SpringBootServletInitializer,并重写configure方法,如


    5、在pom.xml的build中添加项目打包后的名称


    6、打包部署

    (1)、命令行打包

    以命令行的形式进入到项目的目录下,输入如下命令(需在环境变量中配置maven路径)

    mvn clean package

    出现如下图示即说明打包成功


    (2)、在eclipse中打包项目

    右键点击项目 - Run as - Maven build ,在弹窗中的Goals输入package,点击Run

    即可自动打包。打包完成界面与命令行打包一致。


    (3)、部署

    打包文件在项目路径下的target目录里面,如

    放置到tomcat的webapps目录下,即可直接运行,需要注意的是,访问路径需要加上项目名的路径,如下图


    7、eclipse中移除内置tomcat,运行项目可能遇到的问题

    在第二步的时候,如果采用第一种方法移除了内置tomcat的话,在项目中运行时就需要选择Run on server了。然后选择tomcat服务器(需tomcat7以上),这时候有可能会遇到下面的错误。

    出现这个错误的解决方法是,右键点击项目 - properties -  Project Facets ,把Cloud Foundry Standalone Application的勾去掉。

    接下去,就可以在eclipse中配置的tomcat上运行项目了。


    8、让springboot支持tomcat6的方法

    springboot要支持servlet2.5,才可以在tomcat6中运行,让springboot支持servlet2.5需用到spring-boot-legacy,该插件目前只支持到springboot2.0.3版本。

    测试环境:tomcat6 + jdk 1.8 +Springboot 1.5.9.RELEASE

    (1)、pom.xml中新增插件

    在上面1-5步配置完后,继续配置pom.xml。新增spring-boot-legacy依赖

    <dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-legacy</artifactId>    <version>1.1.0.RELEASE</version></dependency>

    (2)、在main目录下新建webapp/WEB-INF/web.xml如下图

    (3)、复制下面内容到web.xml中,并配置启动类的位置

    <?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">    <context-param>        <param-name>contextConfigLocation</param-name>        <!-- 配置Application启动类的具体位置         如启动类在com.example.DemoApplication.java,则配置如下        -->        <param-value>com.example.DemoApplication</param-value>    </context-param>    <listener>        <listener-class>org.springframework.boot.legacy.context.web.SpringBootContextLoaderListener</listener-class>    </listener>    <servlet>        <servlet-name>appServlet</servlet-name>        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        <init-param>            <param-name>contextAttribute</param-name>            <param-value>org.springframework.web.context.WebApplicationContext.ROOT</param-value>        </init-param>        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>appServlet</servlet-name>        <url-pattern>/</url-pattern>    </servlet-mapping></web-app>

    (4)、打包部署,参照上面第6步

    到此,导出的war包即可在tomcat6中运行。
  • 相关阅读:
    图书管理系统
    关键路径
    最短路径

    最小生成树、最短路径
    Huffman编码
    LA 3401
    UVA 10881
    OI 刷题记录——每周更新
    4396: [Usaco2015 dec]High Card Wins
  • 原文地址:https://www.cnblogs.com/jpfss/p/9721914.html
Copyright © 2011-2022 走看看