如何在Tomcat 7中部署war文件

371

我已经将sample.war文件复制到Tomcat的webapps目录中,并且可以访问localhost:8080

现在该怎么部署Tomcat呢?我的意思是我需要在浏览器中打开它吗?我如何访问这个应用程序呢?

13个回答

350

您可以通过以下链接访问您的应用程序: http://localhost:8080/sample

默认情况下,war文件的部署或重新部署是自动进行的 - 在复制/覆盖sample.war文件后,请检查您的webapps文件夹中是否有一个已提取的sample文件夹。

如果无法正确打开,请检查日志文件(例如tomcat/logs/catalina.out)以查找部署问题。


7
如果WAR文件名为"ROOT.war",那该怎么办?我应该在哪里寻找这个WAR文件? - Kevin Meredith
5
如果我想将我的sample.war部署到localhost:8080/somethingdifferent上怎么办? - Koray Tugay
15
您可以在META-INF/context.xml中指定该设置。 - Bozho
5
META-INF/context.xml是指在Tomcat目录下的conf/context.xml文件吗?还是应该放在我要部署的应用程序中? - Koray Tugay
2
它可以放在任何地方,但最好放在应用程序内部。 - Bozho
显示剩余2条评论

102

步骤1:我正在部署pos.war,首先进入Tomcat webapps文件夹并将其粘贴。

enter image description here

步骤2:进入Tomcat->bin文件夹,通过单击startup.bat启动Tomcat。

步骤3:在浏览器中输入localhost:port/project name,例如:localhost:8080/pos(这里我的Tomcat运行在端口8080上)。

完成....

enter image description here


此外,我需要设置权限到我新安装的Tomcat目录结构,以便我的WAR可以被解压缩并生成日志文件。谢谢! - Anthony De Souza

61

您只需要将war文件放在webapps中,然后启动您的服务器。

它会被部署。

否则,您还可以使用Tomcat Manager作为Web前端远程上传和部署您的war文件。


1
很遗憾,它不起作用!您想测试我的特定war文件吗?请从“https://forge.linshare.org/projects/linshare/files”下载“linshare-core-1.8.4-without-SSO.war”。 - Dr.jacky
@Mr.H 在放置war文件后启动服务器时,跟踪日志,你会发现为什么它不起作用。 - jmj
2
如果主机的autoDeploy属性为“true”,则主机将尝试根据需要动态部署和更新Web应用程序,例如如果新的.WAR文件被放置在appBase中。为了使此功能正常工作,主机需要启用后台处理,这是默认配置。 - haltunbay

55

手动操作 - Windows

  1. 将 .war 文件(例如:prj.war)复制到 %CATALINA_HOME%\webapps(例如:C:\tomcat\webapps)。

  2. 运行 %CATALINA_HOME%\bin\startup.bat

  3. 你的 .war 文件将自动解压缩到一个同名的文件夹中(不包括扩展名)(例如:prj)。

  4. 转到 %CATALINA_HOME%\conf\server.xml 并查找 HTTP 协议的端口号<Connector port="8080" ... />。默认值为 8080

  5. 访问以下 URL:

    [<protocol>://]localhost:<port>/folder/resourceName

    (例如:localhost:8080/folder/resourceName)

不要尝试在没有 resourceName 的情况下访问 URL,否则如果没有像 index.html 这样的文件,或者 web.xml 中没有 "/" 或 "/*" 这样的 URL 模式,则无法正常工作。

可用的主路径在此处: [<protocol>://]localhost:<port>/manager/html(例如:http://localhost:8080/manager/html),并且它们在“运行”列中为 true


使用 UI 管理器:

  1. 转到 [<protocol>://]localhost:<port>/manager/html/(通常是 localhost:8080/manager/html/

    这也可以从 [<protocol>://]localhost:<port> > Manager App 中实现。

    如果你看到:

    403 Access Denied

    请转到 %CATALINA_HOME%\conf\tomcat-users.xml 并检查是否启用了像这样的一行:

    <user username="tomcat" password="tomcat" roles="tomcat,role1,manager-gui"/>
    
  2. 部署部分的WAR文件部分,单击Browse...

    Deploy browse

  3. 选择.war文件(例如:prj.war)> 单击部署

  4. 应用程序部分,您可以看到项目的名称(例如:prj)。

20
除了已经提到的方法(将war文件直接放入webapps-目录中),如果您安装了Tomcat Manager应用程序,您也可以通过浏览器部署war文件。要进入管理器,请浏览到服务器的根目录(在您的情况下,localhost:8080),选择“Tomcat Manager”(此时,您需要知道具有“manager”角色的Tomcat用户的用户名和密码,这些用户在tomcat-installation的conf-目录中的tomcat-users.xml中定义)。从打开的页面上向下滚动,直到看到页面的“Deploy”部分,在这里,您可以单击“浏览”以选择要从本地机器部署的WAR文件。选择文件后,单击“deploy”。过一会儿,管理器应通知您已部署应用程序(如果一切顺利,则启动)。 这里是来自Tomcat 7文档页面的更长的操作说明和其他指南。

4
Tomcat 7 中的“manager”角色现在称为“manager-gui”。我因此遭受了损失。 - SpliFF
2
将.war文件放入webapps文件夹没有起作用,日志中也没有任何错误信息。通过Tomcat管理器操作成功了。对于为什么第一种方法失败了一点头绪也没有。 - xverges

17

有两种方式:

  1. 您可以进行热部署(热部署是指服务器正在运行/启动时部署)。
  2. 或者您可以进行冷部署(冷部署是指服务器停止时部署)。

只需使用Tomcat管理器控制台进行控制台部署,或者将应用程序简单地复制并粘贴到服务器的tomcat_home目录下的webapp文件夹中即可。

注意:请确保如果您的war文件大小超过52 MB(默认配置值),则需要对您的webapp文件夹中的Manager应用程序的web.xml文件进行两个小更改(默认情况下,Apache Tomcat安装后提供Manager应用程序)。

  • 转到Manager应用程序的web.xml(例如,它可能在/tomcat7/webapps/manager/WEB-INF/web.xml下)。

  • 增加web.xml文件中的max-file-size和max-request-size值:

    <multipart-config>

        <!– 50MB max –>
    
        <max-file-size>52428800</max-file-size>
    
        <max-request-size>52428800</max-request-size>
    
        <file-size-threshold>0</file-size-threshold>
    
     </multipart-config>
    

    根据您的需求,通过设置<max-file-size><max-request-size>的值来增加大小。


10
这对我很有效:
  1. 在本地创建你的war文件(mysite.war)。
  2. 将它在本地重命名为除了".war"以外的其他名称,比如mysite.www
  3. 当tomcat仍在运行时,将mysite.www上传到webapps目录。
  4. 当上传完成后,删除之前版本的mysite.war文件。
  5. 列出该目录,观察/mysite目录是否消失。
  6. 将mysite.www重命名为mysite.war。
  7. 列出该目录,观察新的/mysite目录是否被创建。

如果尝试在tomcat仍在运行时上传新文件作为war文件,它会在所有文件都上传完成之前尝试展开。它将失败。因此,上传www文件,然后重命名它,允许整个war文件在tomcat注意到之前就已经存在。

提示:不要忘记检查war文件的所有者是否为tomcat(使用chown命令)


2
虽然在某些特殊情况下可能有效,但这不是一个有效的卸载/部署过程。如果autodeploy="true",mysite.www将创建一个新的上下文,并且在多种正常情况下删除mysite.war会删除mysite上下文。最好的参考资料是Tomcat Web应用程序部署 - user250343

5

部署war文件到Tomcat上,按照以下步骤进行:

  1. 停止Tomcat。在powershell中输入services.msc并点击OK,在左侧找到Apache Tomcat 8.5并点击stop。

enter image description here

  1. 将.war文件放置在E:\Tomcat_Installation\webapps目录下,即webapps文件夹中,例如:put.war(put.war仅为示例)。

enter image description here

  1. 启动Tomcat(启动Tomcat的方法:Powershell->services.msc->OK->Apache Tomcat 8.5->start)

你会在E:\Tomcat_Installation\webapps目录下找到一个文件夹**put**。

enter image description here

以这种方式,您可以在Apache Tomcat中部署您的war文件。

5
如果您在Linux上使用apt-get安装了tomcat7,则将应用程序部署到/var/lib/tomcat7/webapps/目录下。
例如:
sudo service tomcat7 stop

mvn clean package
sudo cp target/DestroyTheWorldWithPeace.war /var/lib/tomcat7/webapps/
#you might also want to make sure war file has permission (`777` not just `+x`)
sudo service tomcat7 start

此外,保持对Tomcat日志的追踪,以便您可以验证您的应用程序是否真正与Tomcat协调一致。
tail -f /var/lib/tomcat7/logs/catalina.out

部署的应用程序应该出现在 http://172.16.35.155:8080/manager/html

2
应用程序名称将出现在您部署的Tomcat URL上下文中, 例如:http://localhost:端口/应用程序名称。 如果您的应用程序名称很简单,则应该是http://localhost:8080/sample
默认情况下,端口是8080,但如果您希望更改它或想要知道Tomcat正在运行的端口,只需进入 <tomcat-apache-dir>/conf/server.xml中的server.xml文件,您可以找到并更改端口, 例如:<Connector port="8080" redirectPort="8443" connectionTimeout="20000" protocol="HTTP/1.1"/> 如果发生任何故障,请检查日志文件(例如<tomcat-apache-dir>/logs/catalina.out

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接