Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将webapp从Eclipse部署到Tomcat根上下文_Java_Eclipse_Tomcat - Fatal编程技术网

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

Java 将webapp从Eclipse部署到Tomcat根上下文,java,eclipse,tomcat,Java,Eclipse,Tomcat,我从Eclipse部署了一个.war应用程序,方法是添加动态Web模块方面,然后右键单击项目并选择RunAs->RunonServer 这很好,但是默认情况下,项目被部署到Tomcat的/web上下文中,因为项目名称是web。有没有一种方法可以在不将项目名称更改为ROOT的情况下从Eclipse部署到Tomcat?右键单击应用程序>属性>Web项目设置,并将上下文根设置为ROOT或空-我还没有尝试过,所以请同时尝试这两种方法,并让我知道哪种方法有效。您需要转到服务器视图。。双击tomcat,将打

我从Eclipse部署了一个.war应用程序,方法是添加动态Web模块方面,然后右键单击项目并选择RunAs->RunonServer

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

右键单击应用程序>属性>Web项目设置,并将上下文根设置为ROOT或空-我还没有尝试过,所以请同时尝试这两种方法,并让我知道哪种方法有效。

您需要转到服务器视图。。双击tomcat,将打开一个包含两个选项卡的新窗口。选择显示模块的模块,您的应用程序将与上下文路径一起列出。您可以从此处将上下文路径从/web更改为任何其他内容


或者,您可以打开server.xml查找名为context的标记。在这个标记中,您可以找到contextroot作为/web。。更改它。

在Eclipse中右键单击您的项目,然后选择属性->Web项目设置。在那里更改上下文名称

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

在项目的Web项目设置中,将上下文根设置为/。无报价

以防万一,您正在使用带有mod_代理的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中配置服务器之后,您可以进一步配置它,并添加/删除/调整希望它承载的任何模块,如contexts/webapps。您应该有一个服务器窗口,列出服务器(如果没有):窗口>显示视图>服务器。双击服务器打开配置页面。有两个选项卡,但它们位于左下角。打开模块,将列出您添加的任何模块。如果您希望一个模块是默认模块,那么如果您键入localhost,它将显示server index.jsp,例如,确保路径显示/。默认值将是webapps属性>Web项目设置中的值,通常是项目名称。如果您将其设置在那里,它不会让您将其留空,因此请使用/

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


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

此项有效仅当项目定义为webproject时有效,如果不是web项目,我认为您将无法通过Eclipse的服务器设施部署到Tomcat。注意,要作为站点根运行,请将上下文更改为/。然后,我不得不在Servers视图中右键单击服务器并调用Clean。请删除介绍并使您的答案更简洁和相关。另一种方法是打开Eclipse->Project Explorer->Servers->server.xml: