我在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访问应用程序?


当前回答

如果使用maven java ee 7/8企业应用程序,需要编辑EAR项目的pom.xml

<build>
    <plugins>
        ...
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-ear-plugin</artifactId>
            <version>2.8</version>
            <configuration>
                <version>6</version>
                <defaultLibBundleDir>lib</defaultLibBundleDir>
                <modules>
                    <webModule>
                        <groupId>com.sample</groupId>
                        <artifactId>ProjectName-web</artifactId>
                        <contextRoot>/myproject</contextRoot>
                    </webModule>
                </modules>
            </configuration>
        </plugin>
        ...
    </plugins>
</build>

其他回答

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

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

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

如果使用maven java ee 7/8企业应用程序,需要编辑EAR项目的pom.xml

<build>
    <plugins>
        ...
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-ear-plugin</artifactId>
            <version>2.8</version>
            <configuration>
                <version>6</version>
                <defaultLibBundleDir>lib</defaultLibBundleDir>
                <modules>
                    <webModule>
                        <groupId>com.sample</groupId>
                        <artifactId>ProjectName-web</artifactId>
                        <contextRoot>/myproject</contextRoot>
                    </webModule>
                </modules>
            </configuration>
        </plugin>
        ...
    </plugins>
</build>

在Eclipse web模块编辑对话框中将路径设置为空,使我能够在没有URL中的任何路径组件(即ROOT)的情况下访问项目。

如果你在“Servers”视图中选择Tomcat,或者双击Tomcat,按F3就可以进入web模块编辑对话框。

一些截图:

在java项目中,打开。settings文件夹。在那里找到名为“org.eclipse.wst.common.component”的文件。更改标签<wb-module deploy-name="NEW_NAME"> . txt。

此外,您可能希望更改项目属性中的上下文根

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

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

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

希望这能有所帮助。