我在 Eclipse 中开发了一个动态 Web 项目。现在我可以使用以下 URL 通过浏览器访问它:

http://localhost:8080/MyDynamicWebApp

现在我想将访问URL更改为

http://localhost:8080/app

我从项目“属性 | Web 项目设置 | 上下文根”更改了上下文根。

但它不起作用。Web 应用程序仍然具有之前的访问 URL。我已经在Tomcat上重新部署了应用程序,重新启动了Tomcat并完成了应该完成的所有操作,但是访问URL与之前相同。

我发现没有 server.xml 附有文件 WAR 文件。那么 Tomcat 如何确定我的 Web 应用程序的上下文根是 /MyDynamicWebApp 是否允许我通过该 URL 访问该应用程序?

有帮助吗?

解决方案

我确信你现在已经继续前进了,但我想我还是会回答。

其中一些答案提供了解决方法。实际上必须发生的是清理并重新发布项目以“激活”新的 URI。这是通过右键单击您的服务器(在“服务器”视图中)并选择“清理”来完成的。然后你开始(或重新启动)。这里的大多数其他答案都建议您做一些实际上可以实现这一目标的事情。

正在更改的文件是 workspace/.metadata/.plugins/org.eclipse.wst.server.core/publish/publish.dat 除非您的工作区中有不止一台服务器,在这种情况下它将是 publishN.dat 在同一条路上。

希望这对某人有帮助。


不确定这是否符合礼仪 — 我正在编辑此答案以给出 Eclipse Indigo 的确切步骤。

  1. 在你的项目中 特性, , 选择 网页项目设置.

  2. 改变 上下文根应用程序.

    screen shot of Eclipse project properties Web Project Settings

  3. 选择 窗口 > 显示视图 > 服务器.

  4. 通过单击红色方框(“停止服务器”工具提示)或右键单击服务器列表以选择“停止”来停止服务器。

  5. 在您要使用的服务器上,右键单击以选择“清理...”。

    enter image description here

  6. 在该确认对话框中单击“确定”。

    Screenshot of dialog asking to update server configuration to match the changed context root

现在您可以使用新的“app”URL 运行您的应用程序,例如:

http://localhost:8080/app/

在 Eclipse 之外的生产服务器上执行此操作甚至更容易 --> 重命名 war 文件。将您的 Vaadin 应用程序导出为 WAR 文件 (文件 > 导出 > Web > WAR 文件)。将 WAR 文件移至 Web 服务器的 servlet 容器(例如 Tomcat)。重命名您的 WAR 文件,在本例中为 应用程序战争. 。当您启动 servlet 容器时,大多数(例如 Tomcat)将自动部署应用程序,其中包括将 war 文件展开到文件夹中。在这种情况下,我们应该看到一个名为的文件夹 应用程序. 。你应该可以走了。测试您的网址。对于诸如 *example.com" 之类的域,这将是:

http://www.example.com/app/

如果使用可视化插件,Vaadin 工具包程序员可能需要重建他们的小部件集。

其他提示

(使用添加和删除...服务器的上下文菜单),改变项目属性的上下文根你必须删除从Tomcat Web应用程序后,重新部署,然后重新添加您的应用程序并重新部署。它为我工作。

如果你击中了你有另一个选择:选择Servers视图中的Tomcat服务器。该服务器(或选择打开在上下文菜单中)上双击带来了多页的编辑那里是一个模块页面。在这里,你可以改变你的模块(称为路径此页)根上下文。

如果您从Eclipse中运行Tomcat,它不会使用来自您的实际Tomcat安装配置。它使用它创建,并在“服务器”项目存储Tomcat配置。如果你查看你的Eclipse工作区,你会看到一个名为“服务器”项目。展开“服务器”项目,你会遇到的server.xml。打开此文件并滚动一路底部,你会看到这样的事情: -

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

在这里,你可以改变你的项目上下文路径别的东西。

希望这有助于。

我尝试了通过溶液拉斯贝特曼建议在这里,在后

http://localhost:8080/Myapphttp://localhost:8080/somepath/Myapp

但没有工作对我来说,我需要有一个可容纳服务器的配置,而不是单独的实例对我LOCALMACHINE一个* .war文件。

参考

为了做到这一点,我需要的JBoss-web.xml中放置在WEB-INF

<?xml version="1.0" encoding="UTF-8"?>
 <!--
Copyright (c) 2008 Object Computing, Inc.
All rights reserved.
-->
<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 4.2//EN"
"http://www.jboss.org/j2ee/dtd/jboss-web_4_2.dtd">

  <jboss-web>
  <context-root>somepath/Myapp</context-root>
  </jboss-web>

设置路径没有在Eclipse Web模块编辑对话框,使我没有任何路径部分访问项目的URL(即ROOT)

您可以通过按下F3,如果你选择Tomcat在“服务器”视图或通过双击它到达Web模块编辑对话框。

一些截图:

的Apache Tomcat保持在server.xml中路径的项目上下文路径。 对于Eclipse的每一个web项目,有标签从那里你可以改变它。结果 假设,有两个三个项目上部署服务器。 为每一个上下文路径存储英寸 此标记位于server.xml文件内服务器上创建蚀

我有一个项目存在于服务器上下文根路径上是:

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

这个路径表示Web应用程序的上下文路径。 通过改变这条道路,你的Web应用程序上下文路径将发生变化。

我知道答案已被接受。但是,只是在使用Maven要达到相同的情况下,任何人,只要将 finalName 在Maven的建立,以你想给,做行家的任何名称 - >更新项目

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

如果该项目是行家,在pom.xml中更改“finalName”和更新项目作为Maven.This为我工作。

在Glassfish的,还必须改变文件WEB-INF /的glassfish-web.xml中

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

所以,当您单击 “运行方式>在服务器上运行”它会正确打开。

我只是想补充一点,如果你没有在根上下文希望你的应用程序名称的一切,你,只是把“/”(不含引号,只是正斜杠)在Eclipse - > Web项目设置 - >上下文根条目

这将部署web应用到刚刚 HTTP://本地主机:8080 /

当然,这会导致与您尝试在服务器上运行其他的web应用的问题,所以单挑这一点。

我花了永远一块在一起......所以尽管这个帖子是8岁,希望这将仍然帮助别人!

在java项目,打开.settings文件夹中。那里找到名为“org.eclipse.wst.common.component”的文件。改变标记

另外你可能想改变在项目属性上下文根

如果使用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>

现在去你的项目的根文件夹,并在该位置打开命令提示符 输入以下命令:

MVN蚀:日食-Dwtpversion = 2.0

您可能需要重新启动Eclipse,或者在服务器视图中删除服务器并创建agian看到影响。我不知道在现实生活中这项工作是有意义的,但工程。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top