springboot项目集成Apollo配置中心,去除内嵌tomcat运行

先说一下本地环境及情况:
springboot项目,集成了Apollo配置中心、dubbo,jar包启动;原来没有集成Apollo配置中心的情况下,通过配置已经完成了去除内嵌tomcat,后来集成了Apollo配置中心,部署的时候发现部分服务出现了8080端口冲突,仔细排查发现项目启动的时候启动了内嵌的tomcat,但是由于没有配置server.port端口,导致使用默认 8080端口,多个服务启动的时候出现了端口被占用的问题;

本地资源文件截图如下,已删除application.yml等配置文件,配置已添加至Apollo配置中心
resource资源文件

异常截图如下;
异常截图

解决方案:
正常去除内嵌tomcat的方法
1、pom文件,去除依赖tomcat

		<!-- SpringBoot 核心包 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-starter-tomcat</artifactId>
				</exclusion>
			</exclusions>
		</dependency>`

2、项目启动类添加继承并重写方法,重点是System.setProperty,要把spring.main.web-application-type赋值none到System环境变量中,否则等到配置中心加载这块的时候项目已经使用8080端口启动了

@EnableDubbo
@EnableApolloConfig
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
@MapperScan({"com.soulwell.*.mapper"})
public class PaymentApplication extends SpringBootServletInitializer
{

    public static void main(String[] args)
    {
        System.setProperty("spring.main.web-application-type","none");
        SpringApplication.run(PaymentApplication.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(PaymentApplication.class);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值