3

我正在尝试重命名我的 Spring MVC Web 应用程序。当我运行它时,URL 中有一个旧名称: http://localhost:8080/oldName/

在项目属性>资源中,我设置了路径:/newName,还在 Web 项目设置中,上下文根:newName

但是没用,我还有http://localhost:8080/oldName/ 怎么重命名呢?

4

2 回答 2

0

有不止一种方法,这取决于您是否使用 spring-boot:

  1. 在 application.properties/yml 文件中:

server.servlet.context-path=/newName

  1. Java 系统属性:

您甚至可以在初始化上下文之前将上下文路径设置为 Java 系统属性:

public static void main(String[] args)
{
    System.setProperty("server.servlet.context-path", "/newName");
    SpringApplication.run(Application.class, args);
}
  1. 操作系统环境变量:

Linux:

导出 SERVER_SERVLET_CONTEXT_PATH=/newName

视窗:

设置 SERVER_SERVLET_CONTEXT_PATH=/newName

上面的环境变量是针对 Spring Boot 2.xx 的,如果我们有 1.xx,变量是 SERVER_CONTEXT_PATH。

  1. 命令行参数

我们也可以通过命令行参数动态设置属性:

java -jar app.jar --server.servlet.context-path=/newName

  1. 使用 Java 配置

使用 Spring Boot 2,我们可以使用 WebServerFactoryCustomizer:

@Bean
public WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> webServerFactoryCustomizer() {
    return factory -> factory.setContextPath("/newName");
}

使用 Spring Boot 1,我们可以创建 EmbeddedServletContainerCustomizer 的实例:

@Bean
public EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer() {
    return container -> container.setContextPath("/newName");
}
  1. 日食 + Maven

    <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-eclipse-plugin</artifactId> <version>2.9</version> <configuration> <wtpversion>2.0</wtpversion> <wtpContextName>newName</wtpContextName> </configuration> </plugin>

    1. Eclipse + Gradle

    apply plugin: 'java' apply plugin: 'war' apply plugin: 'eclipse-wtp' eclipse { wtp { component { contextPath = 'newName' } } }

以下链接可能会有所帮助:

于 2018-10-26T17:23:40.680 回答
0

对于我的情况,我使用 ECLIPSE 来开发我的项目。

为了在单击“在服务器上运行”后获得所需的 url,我还需要修改 Tomcat-v9.0 下的 server.xml 的以下行,如下所示:

<Context docBase="newName" path="/newName" reloadable="true" source="org.eclipse.jst.jee.server:newName"/></Host>

PS我在下面检查过:在项目属性>资源中,我设置了路径:/newName,还在Web项目设置中,上下文根:newName

于 2021-11-29T12:09:43.027 回答