我正在从一个简单的Spring启动(1.x)项目创建一个war文件,我想修改Context路径。
为此,我有一个app.properties文件,如下所示:
server.contextPath=/newpath
项目结构如下:
.
src
main
...
resources
application.properties
pom.xml如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test.api</groupId>
<artifactId>example</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>Test project</name>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>1.5.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>1.5.9.RELEASE</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>example</finalName>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
</project>
当我执行 mvn包时,我得到一个WAR文件,其中application.properties文件位于/ WEB-INF / classes中,内容与我写的相同。但是,在将战争部署到Tomcat时,我无法通过以下方式访问我的API:
本地主机:8080 / NEWPATH /示例/ some_controller
我只能通过以下方式查询:
本地主机:8080 /示例/ some_controller
我错过了什么吗?
答案 0 :(得分:0)
请确保将spring boot executable jar项目转换为war文件,转换为war文件有三个步骤。请按照此网址中给出的步骤进行操作 - https://www.mkyong.com/spring-boot/spring-boot-deploy-war-file-to-tomcat/
答案 1 :(得分:0)
server.context-path
属性仅影响嵌入式容器。部署到外部容器时,上下文路径的确定方式不同。
对于Tomcat,您可以将应用程序作为名为webapps
的文件复制到newpath.war
目录。然后它应该在localhost:8080 / newpath / example / some_controller中可用。