我用Spring Boot开发了一个REST API。
如果我从IDE运行它,它工作得很好。
例如,下面的url返回正确的json:
http://localhost:8080/xyz
现在我要部署应用程序。
生成一个war文件并在本地部署到:
C: apache-tomcat-9.0.43 webapps
关闭IDE。
然后启动Tomcat,再次访问如下url:
http://localhost:8080/xyz
我得到一个HTTP 404错误。
原因是什么?
Tomcat正在正常启动
http://localhost:8080正确打开tomcat主页。
它也正确地生成了webapps下的app文件夹。
部署war文件后,将生成一个与war文件同名的文件夹。Url是http://localhost:8080/<war_file_name>/xyz
当你运行Ide时,它只运行Enbibed tomcat,它只运行你的应用程序,这就是为什么你不需要war文件名作为根路径。但是当你运行你的应用程序的极端tomcat,它需要使用War文件名作为你的应用程序的根,因为这里的根是tomcat容器运行不同的War和每个War根路径的文件名。这就是为什么
http://localhost: 8080/& lt; war_file_name>/xyz