springboot项目在外部tomcat下可以启动但是无法访问的问题

首先要确定已经生成了正确的war包,具体操作如下:

1. 在pom.xml中加入

<dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-tomcat</artifactId>
       <scope>provided</scope>
</dependency>

还需要在project标签下加入

<packaging>war</packaging>

2. 在Application启动类中修改

  1. 需要继承SpringBootServletInitializer类
  2. 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);
	}
}

3.运行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 &quot;%r&quot; %s %b" />

      </Host>

重启tomcat就可以使用localhost:8080来访问项目了!

发布了29 篇原创文章 · 获赞 20 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_42237752/article/details/88770230