最近在学校spring boot 在网络上学校到简单的启动spring boot项目,也搭建好了,但时实际情况我的spring boot项目是要发布到tomcat中的,今天,随意打了个war包发布到tomcat中后,访问路径和在myeclipse中启动访问路径不同。且有一些在myeclipse中可以访问的链接都变成了404.
通过在网络上搜索找到了解决方案,同时根据自己的解决项目做对应的修改。这个博客地址找不到了,这里感到抱歉。
我的工具和项目搭建:maven+spring boot
开发工具:myeclipse
开始解决问题。
War包发布,关键在于maven的配置文件pop.xml。关键的地方:
1/打包方式的指定:
<modelVersion>4.0.0</modelVersion>
<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()的路径。同样可以解决问题。