springboot项目在外部tomcat下可以启动但是无法访问的问题
首先要确定已经生成了正确的war包,具体操作如下:
在pom.xml中加入
在Application启动类中修改
-
需要继承SpringBootServletInitializer类 -
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SecurityApplication.class);
}
-
@SpringBootApplication
public class SecurityApplication extends SpringBootServletInitializer{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SecurityApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(SecurityApplication.class, args);
}
}
运行clean package命令打包
- 将项目打成war包放到tomcat的wabapps目录下运行tomcat
- 我都做完了这些步骤后,tomcat可以正常启动,但却访问不到项目,访问项目时是404,找了半天原因,结果是在tomcat下访问时默认路径必须添加上项目名,然后我们项目是前后端分离的并且没有写项目名称,平时使用内置tomcat时直接访问localhost:8080就可以,但是转到外置的tomcat就不行了。几经周折找到了解决办法
修改tomcat的默认访问路径
-
打开tomcat文件夹下的conf,修改server.xml文件,如下: -
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
//将path修改为""即可,
<Context path="" docBase="C:\Users\Administrator\Desktop\开发组件\apache-tomcat-8.0.52\webapps\myblog-1.0"> </Context>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
-
重启tomcat就可以使用localhost:8080来访问项目了!
|