spring boot+maven项目打包成war包部署到tomcat【局域网内访问】

一、配置pom文件

1、移除spring boot内置的tomcat

			org.springframework.boot
			spring-boot-starter-web
			
			
	        	
		            org.springframework.boot
		            spring-boot-starter-tomcat
		        
		    
		

添加Tomcat


			org.apache.tomcat.embed
			tomcat-embed-jasper
			provided
		
2、添加servlet支持

			javax.servlet
			jstl
		
		
3、设置打包为war

war

下图是位置
spring boot+maven项目打包成war包部署到tomcat【局域网内访问】_第1张图片

4、修改SpringApplication 启动类配置
package com.shop.JZShop;

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

public class SpringBootStartApplication extends SpringBootServletInitializer {

	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
		// 注意这里要指向原先用main方法执行的Application启动类
		//JzShopApplication为spring boot项目本身的启动类
		return builder.sources(JzShopApplication.class);
	}
}

这个启动类要与spring boot项目的启动类在同一目录下
在这里插入图片描述

二、将项目打包为war包

1、右键单击项目名-> Run As ->Maven clean

这里 maven 会清楚掉之前对这个项目所有的打包信息
spring boot+maven项目打包成war包部署到tomcat【局域网内访问】_第2张图片

2、进行完上一步后会出现如下信息

spring boot+maven项目打包成war包部署到tomcat【局域网内访问】_第3张图片

3、右键单击项目-> Run As ->Maven build

spring boot+maven项目打包成war包部署到tomcat【局域网内访问】_第4张图片

4、在 Goals框内填写 -X package 并照下图勾选

spring boot+maven项目打包成war包部署到tomcat【局域网内访问】_第5张图片

报错1:

执行后如果报错 **No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?**说明可能没有选择jdk版本,右键项目->Build Path 选择默认的jdk即可,或者根据项目所使用的jdk版本进行配置
spring boot+maven项目打包成war包部署到tomcat【局域网内访问】_第6张图片

同时window->preferences->java->installed JREs 这里需要选择jdk
spring boot+maven项目打包成war包部署到tomcat【局域网内访问】_第7张图片

报错2:

如果控制台中出现 **非法字符:’\ufeff" ** 一类的错误,但查看相应文件后不存在非法字符,请再次执行 Maven build ,如继续同样报错,请点击eclipse左上角 file -> restart 重启eclipse 或者 右键单击 -> Maven -> Update Project 。如果上述操作不管用,那么可以用Notepad,将报错文件中的内容复制进去,以你项目整体的编码格式(如utf-8)保存一遍,然后将文件替换,即可解决

5、如果一切顺利,最后控制台会显示如下信息

spring boot+maven项目打包成war包部署到tomcat【局域网内访问】_第8张图片
然后在项目名上右键单击->refresh 刷新一下,在target 目录下会找到生成的war包
spring boot+maven项目打包成war包部署到tomcat【局域网内访问】_第9张图片

三、将项目部署到Tomcat

1、将war包放到Tomcat的 webapps目录下

spring boot+maven项目打包成war包部署到tomcat【局域网内访问】_第10张图片

2、修改 tomcat 中 conf 目录下的配置文件 server.xml,在配置文件中找到Host标签,在其中添加如下内容。这里使用的是相对路径,doBase 属性的值是我们所打 war 包的名称

path 是虚拟路径;
docBase 是应用程序的物理路径;
privileged 设置为true的时候,才允许Tomcat的Web应用使用容器内的Servlet;
reloadable 如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,可以在不重起tomcat的情况下,自动装载改变后的应用程序,实现热部署;

修改这一项是因为如果不添加这一句,用tomcat访问时需要加上项目名,这也是为什么doBase属性的值是项目名的原因。

3、tomcat版本问题

因为spring boot内置的tomcat是8.5的版本,所以你所使用的tomcat也需要是8.5的版本,我最开始用的是7.0的版本,tomcat启动后报错项目启动失败。

同时 tomcat 需要配置环境变量,否则也无法正常访问页面 配置环境变量请点击

3、打开浏览器输入 localhost:8080,就成功访问到了主页。

四、使局域网内访问(需将war包放到Linux系统的Tomcat中)

1、给MySQL账号添加远程访问权限

mysql添加远程访问权限点这里

2、开启防火墙,开放8080端口

如果是ubuntu系统的话,点这里

你可能感兴趣的:(java,web)