1、在pom中
说明达成war包
<packaging>war</packaging>
build中可以制定war包包名:
<build>
<!-- 制定war包的包名 -->
<finalName>springboot</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
2、启动类集成SpringBootServletInitializer
@SpringBootApplication
public class SpringBootDemoApplication extends SpringBootServletInitializer {
public static void main(String[]args){
SpringApplication.run(SpringBootDemoApplication.class,args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SpringBootDemoApplication.class);
}
}
3、package打好war包
在部署的时候如果是tomcat7会遇到如下问题:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'defaultValidator' defined in class path resource [org/springfr
amework/boot/autoconfigure/validation/ValidationAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.spring
framework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.validation.beanvalidation.LocalValidatorFactoryBean]: Factory m
ethod 'defaultValidator' threw exception; nested exception is java.lang.NoClassDefFoundError: javax/el/ELManager
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:627) ~[spring-beans-5.1.3.RELEASE.jar:5.
1.3.RELEASE]
换成tomcat8以上即可
另外部署到tomcat后server.port已经没有用通过有效的是tomcat对外端口
问题:
发布eureka项目的时候,项目运行时tomcat时端口改成对应的eureka端口,
但需要注意的是:localhost:9999显示的是tomcat
localhost:9999/eureka才能访问到对应的eureka项目部署情况
所以当项目需要注册到eureka时,需要
eureka.client.serviceUrl.defaultZone=http://172.16.20.102:9999/eureka/eureka/
多添加一个eureka