从Eclipse部署webapp到Tomcat根上下文

我通过添加“dynamicWeb模块”方面从Eclipse部署.war应用程序,然后右键单击项目并select“运行方式” – >“在服务器上运行”。

这很好,但默认情况下,项目被部署到Tomcat的/web上下文,因为项目名称是web 。 有没有一种方法,我可以从Eclipse部署到Tomcat,而无需将项目名称更改为ROOT?

你需要去Server View ..双击tomcat,这将打开一个新的窗口(2选项卡)。 select一个Modules ,你的应用程序将在那里列出(与上下文path)。 您可以从/ web更改上下文path到其他任何地方。

或者,您可以打开server.xml查找名为context的标签。 在这个标签中,你会发现contextroot as / web ..改变它。

在Eclipse中右键单击您的项目,然后select“属性” – >“Web项目设置”。 更改上下文名称。

或者,您可以在项目中的.settings / org.eclipse.wst.common.component文件中进行编辑

项目Web项目设置中,将上下文根设置为“/”(不含引号)

以防万一你用mod_proxy使用apache2 。 在我的虚拟主机定义中,我有一个根上下文的位置条目:

  <Proxy balancer://ajpCluster> BalancerMember ajp://localhost:18009 route=s1 BalancerMember ajp://localhost:28009 route=s2 </Proxy> # A "Location" entry for hosting static content. Would put mod_expire settings # here <Location /resources> ProxyPass ! #Don't proxy this location ExpiresActive on ExpiresDefault "access plus 1 seconds" ExpiresByType application/javascript "access plus 1 months" </Location> #... # This must be the last "Location" if you are overloading others, otherwise # the others won't load as apache uses the first one listed that matches <Location /> ProxyPass balancer://ajpCluster stickysession=JSESSIONID </Location> 

在eclipse中configuration了一个服务器之后,你可以进一步configuration它,并添加/删除/调整你希望托pipe的所有模块(又名上下文/ webapps)。 您应该有一个列出服务器的Servers窗口(如果没有:Window> Show View> Servers)。 双击服务器打开configuration页面。 有2个选项卡,但它们位于左下angular。 打开模块,您添加的任何模块将被列出。 如果你想要一个模块作为默认模块(所以如果你inputlocalhost它将服务器index.jsp,例如)确保path说“/”。 默认值将是你的webapps属性> Web项目设置中的内容,通常是项目名称。 如果你在那里设置,它不会让你留下空白,所以使用“/”。

确保保存了您的服务器的configuration更改。 您可能还需要“发布”它以使更改传播到实际的服务器。

最后要检查的是find服务器安装,打开conf / server.xml并查找你的上下文。 你也可以改变那里的path。 请注意,path=“”等同于“/”,tomcat将使ROOT应用程序。 另外请注意,Eclipse在第一次发布时会创build一个名为ROOT的空webapp(这也将在server.xml中)。 删除它是安全的。 即使您部署的应用程序将项目名称作为Web应用程序名称,只要path是“”,它将把它视为默认ROOT。

Right click the application > Properties > Web Project setings设置,并将上下文根设置为根(或为空 – 我没有尝试过,所以试试两个,让我知道哪一个工作)