【发布时间】:2016-11-04 02:15:25
【问题描述】:
我有一个简单的 Spring Boot 应用程序,我可以使用 URL http://localhost:8080/#/appName 在本地运行它。这是我的应用结构
当我将其打包为战争并尝试将其部署在 linux 服务器中时,我无法使用能够在本地加载的相同上下文 (http://SERVERNAME:PORT/#/appName) 加载应用程序。我想我错过了什么,有人可以指导我。
这是部署到tomcat服务器后的应用结构。
WEB-INF/classes/目录下,内容如下。
【问题讨论】:
-
当您说“在本地运行”时,您使用的是嵌入式容器吗?或者是本地的tomcat安装?如果您不使用嵌入式容器,则应用程序上下文由容器而不是应用程序处理。在 tomcat 中,默认情况下它是战争名称。如果您在嵌入式容器中运行 Spring Boot 应用程序,您可以在 application.properties 文件中使用“server.context-path”指定上下文
-
我的意思是它在嵌入式容器中工作。后来我创建了war并尝试将其部署在远程Tomcat服务器中。它使用我的帖子中提到的不同目录结构进行部署。这就是我被阻止的地方,不知道如何点击应用程序
-
我只是更改了主类以扩展 SpringBootServletInitializer 并将其打包为 war,然后将其作为 abc.war 部署到 Tomcat 实例。然后后来我尝试使用server:port/#/abc,因为我曾经在我的本地访问相同的localhost:8080/#/abc 仅供参考,我包含了 pom.xml 中提供的依赖项 spring-boot-starter-tomcat
标签: angularjs tomcat spring-boot