使用外部Tomcat部署spring boot war

我使用的spring-boot的版本为1.5.10.RELEASE

修改pom.xml文件中的打包方式为war包: <packaging>war</packaging>

增加下面的maven依赖:

<dependencies>
<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot</artifactId>
				<version>${spring-boot.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-starter-web</artifactId>
				<version>${spring-boot.version}</version>
				<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-test</artifactId>
				<scope>test</scope>
				<version>${spring-boot.version}</version>
			</dependency>
            <dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
		</dependency>
        </dependencies>

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

然后修改Application类:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;


@SpringBootApplication
public class StoreApplication extends SpringBootServletInitializer {
	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
		return application.sources(StoreApplication.class);
	}

	public static void main(String[] args) throws Exception {
		SpringApplication.run(StoreApplication.class, args);
	}
}

这样就可以使用外部的tomcat部署war包了。

需要注意的是工程中不需要依赖内嵌的tomcat也就是下面的:

<!-- marked the embedded servlet container as provided -->
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-tomcat</artifactId>
		<scope>provided</scope>
	</dependency>

这样配置就可以使用外部的tomcat来部署spring boot了。

本文版权归作者所有,禁止一切形式的转载,复制等操作
赞赏

微信赞赏支付宝赞赏

3 replies to 使用外部Tomcat部署spring boot war

  1. 这个有问题,打war需要scope为provided而本次内嵌tomcat运行又要求必须删除provided,最后通过profile解决。mvn package -Ptomcat

    • 打war需要scope为provided
      这个不需要吧。我在本地运行的时候,已经通过修改pom文件把所有依赖内嵌tomcat的依赖都排除了。

  2. 打错了,是本机,不是本次

发表评论

电子邮件地址不会被公开。 必填项已用*标注