将 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):在 Eclipse 中右键单击您的项目并选择 Properties->Web Project Settings。在那里更改上下文名称。
或者,您可以在项目内的 .settings/org.eclipse.wst.common.component 文件中对其进行编辑
【讨论】:
这只有在项目被定义为webproject的情况下才有效,否则Eclipse可以在没有它的情况下进行链接吗? 如果不是 Web 项目,我认为您无法通过 Eclipse 的服务器设施部署到 Tomcat。 注意,要以站点根目录运行,请将上下文更改为“/”。然后我必须在服务器视图中右键单击服务器并调用“清理”。【参考方案3】:在项目的 Web Project Settings 中,将 Context root 设置为 "/"。 (不带引号)
以防万一您将 apache2 与 mod_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 > Properties > Web Project setings
并将 Context root 设置为 ROOT(或为空 - 我没有尝试过,所以两个都试一下,让我知道哪个有效)
【讨论】:
这个工作***.com/questions/6665245/…以上是关于将 webapp 从 Eclipse 部署到 Tomcat 根上下文的主要内容,如果未能解决你的问题,请参考以下文章
将Eclipse项目自动部署到Tomcat的webapps目录下
eclipse部署web项目至本地的tomcat但是在webapps中找不到
eclipse部署的web项目没有添加到Tomcat的webapps目录下解决方法