服务器没有数据库,项目是通过xml报文进行交互,需要加解密、数字验签、数字签名,所以需要一个配置文件来保存公私钥和密钥;又涉及到公私密钥的修改,所以通过Maven打jar包的方式不合理。当然也可以把密钥配置文件放到服务器指定路径,项目打jar包也是没问题的。满足需求,本人使用SpringBoot通过Maven打war的方式,将密钥配置文件放到项目中,将war包放到tomcar指定目录下,启动tomcat,war包自动解压,也可以实现公私密钥的修改。
**
修改pom.xml文件
**
- 添加打包方式packaging为war
<modelVersion>4.0.0</modelVersion>
<groupId>com.sinatay</groupId>
<artifactId>projectName</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>icbc</name>
- 去掉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>
- 引入tomcat-api
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
- 修改build,添加war方式
<build>
<finalName>projectName</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<!--不影响打包和运行-->
<failOnMissingwebxml>false</failOnMissingwebxml>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>GBK</encoding>
</configuration>
</plugin>
</plugins>
</build>
到此pom.xml文件修改完成
配置启动类
- 继承SpringBootServletInitializer重写**configure(SpringApplicationBuilder builder)**方法,启动类现状如下
@SpringBootApplication
public class IcbcApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(IcbcApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(IcbcApplication.class);
}
}
SpringBoot项目就可以打war包发布了
将打好的war包放到tomcat下,启动tomcat就可以看到war解压后的文件,此后执行的就是解压后的项目文件