Tomcat与springboot配置

将springboot打成war包

  1. 移除内置tomcat
        
            org.springframework.boot
            spring-boot-starter-web
            
                
                    org.springframework.boot
                    spring-boot-starter-tomcat
                
            
        
  1. 添加一个tomcat
        
            org.springframework.boot
            spring-boot-starter-tomcat
            provided
        
  1. 修改打包方法
war
  1. 修改启动类(配置类)
    继承一个类,重写它的一个方法,这个可以写到配置类里。
public class DiscoveryApp  extends SpringBootServletInitializer {
    public static void main(String[] args) {
        SpringApplication.run(DiscoveryApp.class, args);
    }
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(DiscoveryApp.class);
    }
}
  1. 添加war包插件
    在纯springboot项目里,上述四步就可以了。但在springcloud里会出现缺失web.xml文件的错误。需要添加如下配置:
            
                maven-war-plugin
                2.5
                
                    false
                
            

在tomcat里运行多个springboot

按照上面的方法在tomcat里只能运行一个springboot项目,运行多个项目时会出现:
UnableToRegisterMBeanException: Unable to register MBean之类的异常信息,对此可以在application.yml(或同等配置文件里)写上

spring:
  jmx:
    enabled: false

据说只需在第二个、第三个springboot项目上配置,但建议全配。

单tomcat多个端口

修改server.xml文件:
增加端口就是server.xml文件里增加标签。如下:

     
          
          
               
               
                    
               
          
     

将会在tomcat的安装目录下新建一个指定名称的文件夹,把war包放在里面。

标签定义端口。

这里指定war包解压后的路径名,使用相对路径时,是相对于标签里指定的路径,配置后访问该端口就可以直接访问项目的内容,而不需要加上项目路径了。

你可能感兴趣的:(Tomcat与springboot配置)