如何更改Eclipse中dynamicWeb项目的上下文根?

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

http://localhost:8080/MyDynamicWebApp 

现在我想将访问URL更改为

 http://localhost:8080/app 

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

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

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

我相信你现在已经走了,但是我还是想回答。

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

正在改变的文件是workspace / .metadata / .plugins / org.eclipse.wst.server.core / publish / publish.dat,除非在工作区中有多个服务器,在这种情况下,它将会是publishN.dat在同一条path上。

希望这有助于某人。


不知道这是否是适当的礼仪 – 我正在编辑这个答案,给Eclipse的靛蓝的确切步骤。

  1. 在您的项目的属性中,select“Web项目设置”。

  2. 将“上下文根”更改为“应用程序”。

    Eclipse项目属性Web项目设置的屏幕截图

  3. select窗口>显示视图>服务器。

  4. 通过单击红色方框(“停止服务器”工具提示)或上下文单击服务器列表来select“停止”来停止服务器。

  5. 在要使用的服务器上,单击上下文以select“清理…”。

    在这里输入图像说明

  6. 在此确认对话框中单击确定。

    请求更新服务器配置以匹配更改的上下文根的对话框的屏幕截图

现在,您可以使用新的“应用”url运行您的应用,例如:

http://localhost:8080/app/

在Eclipse之外,在生产服务器上执行此操作更容易 – >重命名war文件。 将您的Vaadin应用程序导出为WAR文件(文件>导出> Web> WAR文件)。 将WAR文件移动到Web服务器的servlet容器(如Tomcat)。 将WAR文件重命名为“app.war”。 当您启动servlet容器时,大多数(如Tomcat)都会自动部署应用程序,其中包括将战争文件扩展到文件夹。 在这种情况下,我们应该看到一个名为“app”的文件夹。 你应该很好走。 testing你的url。 对于诸如“example.com”这样的域,这将是:

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

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

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

如果您遇到了问题,则可以select另一种方法:在“服务器”视图中selectTomcat服务器。 双击该服务器(或者在上下文菜单中select“打开”),会在带有“模块”页面的位置显示多页面编辑器。 在这里你可以改变模块的根上下文(在这个页面上称为Path)。

如果您从Eclipse运行Tomcat,则不会使用实际的Tomcat安装中的configuration。 它使用它创build并存储在“服务器”项目下的Tomcatconfiguration。 如果您查看Eclipse工作区,则应该看到一个名为“Servers”的项目。 展开“Servers”项目,你会遇到server.xml。 打开这个文件,一直滚动到底部,你应该看到这样的东西: –

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

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

希望这可以帮助。

我尝试了Russ Bateman在这里发表的解决scheme

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

但没有为我工作,因为我需要有一个* .war文件,可以容纳configuration,而不是我的本地服务器的个人实例。

参考

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

 <?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> 

Apache Tomcat在server.xmlpath中保留项目上下文path。 对于Eclipse上的每个Web项目,都有标签,您可以对其进行更改。
假设在服务器上部署了两到三个项目。 对于每个上下文path存储在。 该标签位于eclipse上创build的Server内的server.xml文件中。

我有一个项目在那里上下文根path在服务器是:

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

此path表示您的Web应用程序的上下文path。 通过改变这个path,你的web app上下文path将会改变。

我知道答案已经被接受了。 但是,为了防止任何人使用Maven想要实现相同的事情,只要在Maven 构build中设置任何名字你想给的名字,做一个maven – >更新项目

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

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

如果您在“Servers”(服务器)视图中select了Tomcat,或者通过双击,则可以通过按F3来访问Web模块编辑对话框。

一些截图:

如果项目是maven,请将pom.xml中的“finalName”更改为Maven.This对我有用。

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

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

所以当你点击“Run as> Run on server”时,它会正确打开。

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

您也可能想要更改项目属性中的上下文根