最近有个springboot项目要发布到独立的tomcat下运行,其中遇到了很多坑,在此记录下:
1.springboot项目打包配置:
首先在启动类目录下新增打包类
备注:启动类继承自SpringBootServletInitializer方可正常部署至常规tomcat下,其主要能够起到web.xml的作用(web.xml主要配置各种servlet,filter,listener等,如常见的Log4jConfigListener、OpenSessionInViewFilter、CharacterEncodingFilter、DispatcherServlet等,此部分信息均是容器启动时加载)
2.pom文件改动:
2.1需要新增这些依赖:
其中tomcat.version要和tomcat服务器中设置的jdk版本一致!(linux下命令:whereis java)
<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>
<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-juli</artifactId>
<version>${tomcat.version}</version>
</dependency>
<build><plugins><plugins>中新增:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<finalName>${project.name}</finalName><!-- 打包后的war名称-->
</configuration>
</plugin>
2.2其中需要修改的pom标签:
<packaging>war</packaging> 打jar包需要改为jar
2.3IDEA执行:
打完的war包在
发布到tomcat容器下就可以了。
其中tomcat服务器搭建几个注意点:
1.修改端口号(三处修改),防止多tomcat冲突
2.tomcat指定jar需要修改 setclasspath.sh 新增两句语句:
export JAVA_HOME=/usr/java/jdk1.8.0_65
export JRE_HOME=/usr/java/jdk1.8.0_65/jre/ (后面的/不能漏)
3.修改tomcat的内存