一、登錄控制臺
http://36.158.226.120:9060/console
二、排除默認的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>
三、打war包
<packaging>war</packaging>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
四、重寫啟動類
重寫啟動類,繼承 SpringBootServletInitializer 類,重寫 configure 方法,否則無法檢測到啟動類。
public class StandardSystemApplication extends SpringBootServletInitializer
{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(StandardSystemApplication.class);
}
public static void main(String[] args)
{
SpringApplication.run(StandardSystemApplication.class, args);
System.out.println("(????)?? 系統模塊啟動成功 ?(′?`?)? ");
}
}
五、注冊
如果使用的是基于 Consul 的微服務架構,除了上述步驟,還需要添加以下配置類,將服務注冊至 Consul 注冊中心,否則服務雖然正常啟動,沒有任何報錯信息,但是并沒有注冊到 Consul。
package com.gientech.jep.service.sys.conf;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.cloud.consul.serviceregistry.ConsulAutoRegistration;
import org.springframework.cloud.consul.serviceregistry.ConsulAutoServiceRegistration;
import org.springframework.context.annotation.Configuration;
import javax.management.MBeanServer;
import javax.management.ObjectName;
import javax.management.Query;
import java.lang.management.ManagementFactory;
import java.util.Set;
/**
ConsulApplicationRunner
@author houyinke
-
@date 2022/12/11 11:40
*/
@Configuration
public class ConsulApplicationRunner implements ApplicationRunner {@Autowired(required = false)
private ConsulAutoServiceRegistration serviceRegistration;@Autowired(required = false)
private ConsulAutoRegistration registration;@Value("${server.port}")
Integer port;@Override
public void run(ApplicationArguments args) {
if (registration != null && port != null) {
Integer tomcatPort = port;
try {
tomcatPort = new Integer(getTomcatPort());
} catch (Exception e) {
e.printStackTrace();
}
registration.getService().setPort(tomcatPort);
serviceRegistration.start();
}
}/**
- 獲取外部tomcat端口
/
public String getTomcatPort() throws Exception {
MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer();
Set< ObjectName > objectNames = beanServer.queryNames(new ObjectName(":type=Connector,*"), Query.match(Query.attr("protocol"), Query.value("HTTP/1.1")));
String port = objectNames.iterator().next().getKeyProperty("port");
return port;
}
}
- 獲取外部tomcat端口
六、一個Web容器下部署多個服務
如果想通過在一個 TongWeb 下部署多個服務,有兩種方案:
- 采用多通道結合多虛擬主機實現多服務部署;
-
增加多個域(具體操作參考官方安裝部署手冊);
? 多通道
image.png
? 多虛擬主機
七、通過 build
八、依賴TongWeb 7.x
1、刪除 TongWeb/lib/validation-api.jar,加入validation-api-2.0.1.Final到lib
2、項目依賴TongWeb/lib,IDEA。
5.3.2 微前端
1、 將build完成的VUE項目拷貝到文件夾中
2、 創建文件夾WEB-INF
3、 進入WEB-INF文件夾創建文件web.xml
內容如下:
<?xml version="1.0"?>
<web-app>
<error-page>
<error-code>404</error-code>
<location>/index.html</location>
</error-page>
</web-app>
4、 進行打包
輸入jar -cvf sys.war * 進行打包。
打包完成之后會產生如下文件,將sys.war上傳到TngWeb即可開始部署前端。