赞
踩
本次以 springboot+maven 项目举例:
本次搭配的是: apache-tomcat-8.5.63 解压版
jdk_1.8
框架:spring-boot 2.0.6
包管理工具:maven_3.3.9
开发工具:idea
a: 打包方式war包格式,以下:
<packaging>war</packaging>
b: 忽略掉 springboot自带的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>
c: 增加 servlet-api包:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<!-- provided表明该包只在编译和测试的时候用 -->
<scope>provided</scope>
</dependency>
注意 tomcat的版本 以及jdk的版本和增加的jar包搭配使用,如果配置不当,很可能会出现异常。
以上步骤完成之后:
检查代码,比如 各个拦截器的配置,过滤器的配置,以及路径配置问题, 主要为防止 访问出现问题。
d: 设置主目录:
这个建议 新增加一个class类,平时调试用app启动类,打包就用此类
public class StartWeb extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(StartApplication.class);
}
}
注解: StartWeb新建的类,继承 SpringBootServletInitializer
重写 启动源: return builder.sources(StartApplication.class);
StartApplication jar包启动的那个主类
先 clean 然后 compile 再 package
然后就会生成 war包,把war包丢进 tomcat的webapps目录下,然后启动,即可。
访问路径参照 ip(本地)+(端口:tomcat server.xml配置的)+ /“war包名”/XX
本次在全打包过程中,出现过两个小问题:
1-war包解压出错 2-tomcat启动但访问不了
在此: 建议: 1-使用全新的tomcat ,避免 使用旧的tomcat造成配置错误,引发不必要的排查
2- 代码中过滤器,拦截器,安全框架,属性配置文件检查,避免路径问题
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。