最近在学校spring boot 在网络上学校到简单的启动spring boot项目,也搭建好了,但时实际状况个人spring boot项目是要发布到tomcat中的,今天,随意打了个war包发布到tomcat中后,访问路径和在myeclipse中启动访问路径不一样。且有一些在myeclipse中能够访问的连接都变成了404.web
经过在网络上搜索找到了解决方案,同时根据本身的解决项目作对应的修改。这个博客地址找不到了,这里感到抱歉。spring
个人工具和项目搭建:maven+spring bootapache
开发工具:myeclipsetomcat
开始解决问题。网络
War包发布,关键在于maven的配置文件pop.xml。关键的地方:eclipse
1/打包方式的指定:maven
<modelVersion>4.0.0</modelVersion>ide
<groupId>gateway</groupId>工具
<artifactId>gateway</artifactId>开发工具
<packaging>war</packaging>打包方式指定war
<version>0.0.1-SNAPSHOT</version>
2/在plugin标签中指定bulid方式位war
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>bulid方式
<configuration>
<warSourceExcludes>src/main/resources/**</warSourceExcludes>
<warName>gateway</warName>
</configuration>
</plugin>
3/添加相似与web配置的spring启动方法。
必须与@SpringBootApplication注解类放到同一级目录下不然回无效果。
个人@SpringBootApplication注解类为
Application
/**
* 支持tomcat的启动类
* @author GuoPC
*
*/
public class SpringBootStartApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
// 注意这里要指向原先用main方法执行的Application启动类
return builder.sources(Application.class);
}
}
这些配置好,发布到tomcat中就能够正常启动了。
5/我在转换是遇到一个路径问题,在使用myeclipse开发是路径为index,这样发布回致使发布后路径404.修改成./index就行了。或者在路径前添加request.getcontextPath()的路径。一样能够解决问题。