我正在尝试重命名我的 Spring MVC Web 应用程序。当我运行它时,URL 中有一个旧名称: http://localhost:8080/oldName/
在项目属性>资源中,我设置了路径:/newName,还在 Web 项目设置中,上下文根:newName
但是没用,我还有http://localhost:8080/oldName/ 怎么重命名呢?
我正在尝试重命名我的 Spring MVC Web 应用程序。当我运行它时,URL 中有一个旧名称: http://localhost:8080/oldName/
在项目属性>资源中,我设置了路径:/newName,还在 Web 项目设置中,上下文根:newName
但是没用,我还有http://localhost:8080/oldName/ 怎么重命名呢?
有不止一种方法,这取决于您是否使用 spring-boot:
server.servlet.context-path=/newName
您甚至可以在初始化上下文之前将上下文路径设置为 Java 系统属性:
public static void main(String[] args)
{
System.setProperty("server.servlet.context-path", "/newName");
SpringApplication.run(Application.class, args);
}
Linux:
导出 SERVER_SERVLET_CONTEXT_PATH=/newName
视窗:
设置 SERVER_SERVLET_CONTEXT_PATH=/newName
上面的环境变量是针对 Spring Boot 2.xx 的,如果我们有 1.xx,变量是 SERVER_CONTEXT_PATH。
我们也可以通过命令行参数动态设置属性:
java -jar app.jar --server.servlet.context-path=/newName
使用 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");
}
日食 + 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>
apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'eclipse-wtp'
eclipse {
wtp {
component {
contextPath = 'newName'
}
}
}
以下链接可能会有所帮助:
对于我的情况,我使用 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