将 webapp 从 Eclipse 部署到 Tomcat 根上下文

Posted

技术标签:

【中文标题】将 webapp 从 Eclipse 部署到 Tomcat 根上下文【英文标题】:deploy webapp from Eclipse to Tomcat root context 【发布时间】:2011-10-03 15:52:37 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

你需要去Server View.. 双击tomcat,这会打开一个新窗口(有2个标签)。选择上面写着Modules 的那个,您的应用程序将列在那里(带有上下文路径)。您可以从此处将上下文路径从 /web 更改为其他任何内容。

或者,您可以打开 server.xml 查找名为 context 的标记。在此标记中,您会发现上下文根为 /web.. 更改它。

【讨论】:

最好的替代方法(打开 Eclipse -> 项目资源管理器 -> 服务器 -> server.xml): 【参考方案2】:

在 Eclipse 中右键单击您的项目并选择 Properties->Web Project Settings。在那里更改上下文名称。

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

【讨论】:

这只有在项目被定义为webproject的情况下才有效,否则Eclipse可以在没有它的情况下进行链接吗? 如果不是 Web 项目,我认为您无法通过 Eclipse 的服务器设施部署到 Tomcat。 注意,要以站点根目录运行,请将上下文更改为“/”。然后我必须在服务器视图中右键单击服务器并调用“清理”。【参考方案3】:

在项目的 Web Project Settings 中,将 Context root 设置为 "/"(不带引号)

以防万一您将 apache2mod_proxy 一起使用。在我的虚拟主机定义中,我有一个根上下文的 Location 条目:

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

【讨论】:

【参考方案4】:

在 Eclipse 中配置服务器后,您可以进一步配置它并添加/删除/调整您希望它托管的任何模块(也称为上下文/webapps)。您应该有一个列出服务器的服务器窗口(如果没有:窗口 > 显示视图 > 服务器)。双击服务器打开配置页面。有 2 个选项卡,但它们位于左下角。打开模块,您添加的任何模块都将被列出。如果您希望一个模块成为默认模块(例如,如果您键入 localhost,它将服务器 index.jsp)确保该路径显示“/”。默认值将是您的 webapps 属性 > Web 项目设置中的内容,通常是项目名称。如果你在那里设置,它不会让你留空,所以使用“/”。

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

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

【讨论】:

请删除介绍,使您的答案更简洁和相关。【参考方案5】:

Right click the application &gt; Properties &gt; Web Project setings 并将 Context root 设置为 ROOT(或为空 - 我没有尝试过,所以两个都试一下,让我知道哪个有效)

【讨论】:

这个工作***.com/questions/6665245/…

以上是关于将 webapp 从 Eclipse 部署到 Tomcat 根上下文的主要内容,如果未能解决你的问题,请参考以下文章

将Eclipse项目自动部署到Tomcat的webapps目录下

eclipse部署web项目至本地的tomcat但是在webapps中找不到

eclipse发布项目到tomcat部署目录

eclipse部署的web项目没有添加到Tomcat的webapps目录下解决方法

Eclipse启动Web项目 Tomcat中webapps中没有项目文件夹

Eclipse下配置javaweb项目快速部署到tomcat