我在Eclipse中开发了一个动态web项目。 我可以通过我的浏览器使用以下URL访问应用程序:

http://localhost:8080/MyDynamicWebApp

我想更改访问URL为:

http://localhost:8080/app

为此,我更改了项目“Properties | Web项目设置| context root”中的上下文根。 但是,web应用程序仍然具有相同的访问URL。我在Tomcat上重新部署了应用程序,并重新启动了Tomcat,但是访问URL与前面相同。

我发现WAR文件中没有附加server.xml文件。如果没有附加server.xml文件,Tomcat如何确定我的web应用程序的上下文根是/MyDynamicWebApp,并允许我通过这个上下文根URL访问应用程序?


当前回答

我有一些替代资源… 但是通过编程的方式将通过更改服务器.....上的server.xml文件

这是一个真实项目的配置方式....请根据上下文修改路径。

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

其他回答

我知道答案已经被接受了。但是,为了防止任何使用Maven的人想要达到同样的目的,只需将Maven构建中的finalName设置为您想要的任何名称,并执行Maven ->更新项目

<build>
    <finalName><any-name></finalName>
    <plugins><provide-plugins-needed></plugins>
<build>

如果使用eclipse部署应用程序。我们可以使用这个maven插件

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

现在转到项目根文件夹并在该位置打开CMD提示符 输入以下命令:

mvn eclipse:eclipse -dwtpversion=2.0

您可能需要重新启动eclipse,或者在服务器视图中删除服务器并重新创建以查看影响。我想知道这个练习在现实生活中是否有意义,但却很有效。

如果从Eclipse运行Tomcat,它不会使用实际安装Tomcat时的配置。它使用它在“Servers”项目下创建和存储的Tomcat配置。如果查看Eclipse工作空间,应该会看到一个名为“Servers”的项目。展开“Servers”项目,您将看到server.xml。打开这个文件,一直滚动到底部,你应该看到这样的东西:-

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

在这里,您可以将项目上下文路径更改为其他路径。

希望这能有所帮助。

如果项目是maven,则将pom.xml中的“finalName”更改为maven,并将项目更新为maven。这对我很管用。

在Glassfish中,您还必须更改文件WEB-INF/ Glassfish -web.xml

<glassfish-web-app>
    <context-root>/myapp</context-root>
</glassfish-web-app>

所以当你点击“作为>运行在服务器上”,它会正确打开。