Springboot:不考虑application.properties路径动机

时间:2018-04-09 21:53:13

标签: java maven spring-boot maven-war-plugin

我正在从一个简单的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

我错过了什么吗?

2 个答案:

答案 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中可用。