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

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

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

【问题讨论】:

    标签: java 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 设置为 "/"。 (不带引号)

    以防万一您将 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 &gt; Properties &gt; Web Project setings 并将 Context root 设置为 ROOT(或为空 - 我没有尝试过,所以两个都试一下,让我知道哪个有效)

      【讨论】:

      猜你喜欢
      • 2010-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-14
      • 2011-10-03
      • 1970-01-01
      相关资源
      最近更新 更多