设置Tomcat默认上下文路径

4
在我的context.xml文件中,我将以下内容设置为:<Context antiJARLocking="true" path="/" /> 当我从NetBeans运行项目时,它能正确地运作并进入http://localhost:8080/login。但是当我清理和构建后,然后进入Tomcat Manager并部署war文件时,不知道为什么它会变成http://localhost:8080/appName/login。我不确定为什么会添加上上下文路径,也不知道这个路径来自哪里,但每次我手动部署时都会这样做。每次我直接从NetBeans运行项目时,都没有这种情况。当我直接从NetBeans运行后,如果我进入Tomcat Manager,它会显示应用程序在/上下文路径下部署,这是正确的。但是当我手动部署.war文件时,它会在/appName上下文路径下部署。
3个回答

3

看起来你正在将war文件构建为“appName.war”。这就是Tomcat将其部署在“/appName”下的原因。

如果你想让你的应用程序在“/”处访问,可以将war文件重命名为ROOT.war并将其放在/webapps目录中,然后它应该可以通过http://localhost:8080/访问。


也许有自动化的方法来完成这个任务?比如使用Maven插件? - zygimantus

1
一些应用程序的编写方式需要更改上下文路径必须进行代码更改。如果您遇到此情况,这里有另一种使服务器默认为特定上下文的方法:
步骤1)将此内容放入[tomcat]/conf/web.xml中。
<welcome-file-list>      
    <welcome-file>index.html</welcome-file>
</welcome-file-list>

步骤2)将此文件添加到您的ROOT Web应用程序文件夹中,并保持其他所有内容不变:index.html(用于根应用程序)。使用此JavaScript方法而不是普通重定向,可以使“重定向”起作用并保留相同的URL参数。

<!doctype html>
<html>
<head>

<script language="JavaScript">
    document.location.href = "/mycontext" + document.location.search;
</script>

</head>

</html>

0
请使用这个 Maven 插件:
<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <path>/</path>
        <warFile>${project.build.directory}/fileName.war</warFile>
    </configuration>
</plugin>

删除 META-INF 文件夹中的 context.xml 文件。

使用以下命令运行您的项目:mvn tomcat7:run


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接