东方通部署WAR包
项目打包
1.启动类
@RestController
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application){
return application.sources(Application.class);
}
}
2.pom.xml
<!-- 打包方式为war包 -->
<packaging>war</packaging>
<!-- &禁止springboot 内嵌tomcat启动 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<finalName>ROOT</finalName>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<!--如果想在没有web.xml文件的情况下构建WAR,请设置为false。-->
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugins>
3.前端放resource/static目录下
部署应用
(部署前确认目前虚拟主机、http通道默认的字符集,避免出现乱码,可参考问题点模块)
问题点
1.内存溢出
<!-- 进入东方通部署目录 -->
cd bin/
vi external.vmoptions
调整参数 XX:MaxMetaspaceSize
2.遇到如下情况需调整参数
3.request请求参数解码出现乱码,修改参数和url解析默认编码即可,默认GBK
部署多个应用
(部署前确认目前虚拟主机、http通道默认的字符集,避免出现乱码,可参考问题点模块)
1.通过创建domain的方式,相当于复制一个web服务
(建议采用该方式)
<!-- 进入东方通部署目录 -->
cd bin/
./domain.sh create 域名,例如:./domain.sh create zjtz_ex_domain
(端口规则,每创建一个domain,端口+1,即9061,
创建完成,根目录下找到domains文件夹,启动./startservernohub.sh
后续访问http://ip:9061/console部署即可)
2.通过多http通道的方式
(目前该方式部署没有问题,但存在多个应用公用一份日志文件的问题,还需要完善)
1.创建一个zjtz-ids-server,这里需要绑定接下来创建的http通道
2.创建一个http通道,重新指定端口、绑定第一步创建的zjtz-ids-server,其余参数与默认的server一致
3.开始部署应用,指定第一步创建的zjtz-ids-server为虚拟主机即可
重启服务
<!-- 进入东方通部署目录 -->
cd bin/
./stopserver.sh 停止服务
netstat -ano |findstr "端口号" 查看9060端口是否被占用,如果停服出现问题使用kill -9
./startservernohub.sh 启动服务