如何在Tomcat上部署Java Web应用程序(.war文件)?

23

我有一个 Java Web 应用程序的 .war 文件,现在我想将它上传到我的 FTP 服务器上以便我可以执行它。

我应该执行哪些步骤才能运行它?

Web 应用程序的上下文路径是 /mywebapp

编辑

实际上,我的 FTP 服务器名称是 ftp://bilgin.ath.cx/ ,我已经将我的 TestWebApp.war 文件上传到此目录:ftp://bilgin.ath.cx/web

那么访问 Web 应用程序的 index.html 页面的 URL 应该是什么呢?

#2 编辑

Tomcat 正在监听 8082

Apache 通过 jk 连接器访问 Tomcat。


bilgin.ath.cx 的说明书说了什么? - Thorbjørn Ravn Andersen
5个回答

17

正如其他人指出的那样,部署WAR文件最直接的方法是将其复制到Tomcat安装目录下的webapps目录中。另一个选择是使用管理应用程序,如果它已经安装(这并非总是如此),如果已经正确配置(即您有分配给适当组的用户凭据),并且您可以通过不安全的网络(如Internet)访问它(但这很不可能,并且您没有提及任何VPN访问)。因此,这使您只能使用webapp目录。

现在,如果Tomcat已经安装并在bilgin.ath.cx上运行(因为这是您上传文件的机器),我注意到Apache正在该机器的80端口侦听,所以我敢打赌Tomcat不会直接暴露在外,而是需要通过Apache进行请求处理。在这种情况下,我认为部署新的Web应用程序并使其对Internet可见将涉及编辑Apache配置文件(mod_jkmod_proxy?)。您应该向我们提供更多详细信息或与您的托管提供商讨论此问题。

更新: 如预期,bilgin.ath.cx 正在使用 Apache Tomcat + Apache HTTPD + mod_jk。该配置通常涉及两个文件:用于配置工作进程的 worker.properties 文件和 Apache 的 httpd.conf 文件。现在,如果没有看到当前配置,很难给出明确的答案,但基本上,您可能需要在 Apache 的 httpd.conf 中添加一个 JkMount 指令以为您的新 webapp 进行配置1。请参阅mod_jk文档,它有一个简单的配置示例。请注意,修改 httpd.conf 将需要访问(显然)和适当的权限,并且您将不得不在修改后重启 Apache。

1 如果您正在部署到已经使用的 Tomcat 实例中,则我认为您不需要定义新工作进程,特别是如果这听起来对您来说像中文 :)


4
@Yatendra,我确实不建议在公共网站上发布敏感信息,即使只是短时间。而且你不应该将敏感资源提供给你不认识的人,即使我真的是个好人 :) - Pascal Thivent

12
  • 将 .war 文件复制到 webapps 文件夹中
  • 使用管理应用程序 - http://host:port/manager 上传文件。您需要事先设置一些用户。
  • (不建议,但可以工作) - 将 .war 文件手动提取为 .zip 归档文件,并将提取的文件放置在 webapps/webappname

有时管理员会配置 Tomcat,以便将 WAR 文件部署到 Tomcat 文件夹之外。即使在这种情况下:

在部署后(检查任何问题的 /logs 目录),它应该可以通过以下方式访问:http://host:port/yourwebappname/。因此,在您的情况下,其中之一:

http://bilgin.ath.cx/TestWebApp/
http://bilgin.ath.cx:8080/TestWebApp/

如果您无法通过上述方法和谷歌搜索解决问题,请向支持团队寻求帮助。可能存在备用端口或应用程序出现了问题(因此需要查看日志)


3

Tomcat手册中提到:

将Web应用程序存档文件复制到$CATALINA_HOME/webapps/目录中。当启动Tomcat时,它会自动将Web应用程序存档文件扩展为其未打包的形式,并以此方式执行该应用程序。


上传到webapps目录后,我应该在浏览器中输入什么URL才能访问它的index.html页面?我是J2EE的新手。 - Amit
顺便说一句,Tomcat 4已经过时了 ;) (以上声明对于6仍然正确) - Bozho

1
请注意,您可以使用HTTP 进行远程部署

http://localhost:8080/manager/deploy

上传Web应用程序存档(WAR)文件,该文件在此HTTP PUT请求中指定为请求数据,将其安装到相应虚拟主机的appBase目录中,并使用不带.war扩展名的war文件名称作为路径启动它。稍后可以通过使用 /undeploy 来卸载应用程序(并删除相应的应用程序目录)。要部署ROOT Web应用程序(上下文路径为“/”的应用程序),请将war命名为ROOT.war。

如果您正在使用Ant,可以在成功构建之后使用Tomcat Ant任务执行此操作。

要确定在浏览器上访问的路径,您需要知道Tomcat运行的端口、上下文和Servlet路径。请参见此处以获取更多详细信息


你在问题中列出的FTP位置在这种情况下基本上没有意义。Tomcat运行的端口号是多少,你的servlet名称是什么,以及你的上下文名称是什么?这些组成了你在浏览器中请求的路径。请参见我上面的编辑。 - Brian Agnew
其次,通过FTP传输是否会导致部署?您需要写入正确的目录,然后检查日志文件。 - Brian Agnew

1

登录:URL = "localhost:8080/" 输入用户名和密码 点击 Manager App 向下滚动并找到 "WAR file to deploy" 选择文件并点击部署

完成

前往你的 Apache Tomcat 的 Webapp 文件夹,你会看到一个与你的 WAR 文件名称匹配的文件夹。

在 URL 地址栏中输入链接:localhost:8080/HelloWorld/HelloWorld.html 然后按回车键

完成


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