如何将Java Web应用程序项目从Eclipse部署到Tomcat生产服务器?

24

我使用HTML、Java Servlet等开发了一个Web应用程序。在开发过程中,我使用Tomcat进行部署以测试它。

现在我的开发完成了,我想将其发布到生产服务器上。由于我对这一切都很新,所以不知道如何在生产服务器上部署我的Java Web应用程序。

如果您知道答案,请帮助我。

我的项目结构

     ProjectName
         ->src
               ->beanClass
                       ->class1
                       ->Class2
               ->easyServlet    
                       ->Servlet1
                       ->Servlet2
                       ->Servlet3
               ->easyTrans
                       ->Class1    
                       ->Class2    
                       ->Class3    
                       ->Class4    
         ->build
         ->WebContent
               ->META-INF
                       ->MENIFEST.mf
               ->WEB-INF
                       ->lib(contain javascript files)
                       ->web.xml
               ->html1
               ->html2
               ->html3
               ->html4
               ->html5

我也在使用MySQL,那我需要做些什么呢?


是否有构建过程?您是否可以访问文件服务器的文件系统? - Jacob
@Mattan,所谓“实时服务器”,是指我们有一个服务器,已经部署了我们的网站,并且正在运行中。我想将我的应用程序部署到同一台服务器上。 - mahesh
@cularis 抱歉,我无法理解你的意思。我使用Eclipse IDE开发了我的Web应用程序,并使用Tomcat 6.0作为运行环境。 - mahesh
4个回答

18
你需要构建一个项目的WAR文件。 你可以这样做:
  • 在eclipse中:右键单击项目,点击“导出”,在对话框中选择war文件(并提及目标、名称等)
  • 通过使用war任务的ant
  • ant选项更好,因为当项目上有多个开发人员且代码在版本控制中时,使用ant自动获取项目并构建war文件更容易。(你有版本控制吗?)

但这更多是一种操作上的差异(尽管重要),但无论哪种方式创建的war都是相同的。
部署war到服务器
  • 您可以将war文件手动复制到$TOMCAT_HOME/webapps目录(请参见本文中的“创建和部署WAR文件”部分)。
  • 您可以使用Tomcat 6 "Manager" application

更新
您说您也在使用MySql。 MySql应该安装在服务器上(它可以在同一台服务器上),并且配置应该更改(用户名,密码,服务器详细信息),以便应用程序连接到同一数据库(我相信您没有在应用程序中硬编码数据库详细信息和凭据,并且从某些配置文件中读取它们,这就是需要更改的配置)


谢谢,我认为我已经得到了所有需要的细节。现在最后一个问题是,由于我使用Tomcat开发了我的应用程序,那么部署时是否必须使用Tomcat?我不能使用JBOSS或Apache吗? - mahesh
@mahesh 你可以部署到JBOSS(但不能部署到Apache服务器,如果你所说的是“Apache”的话。Apache服务器是一个简单的HTTP服务器,你不能在上面托管_Java Web Application_(使用servlet等)。从Tomcat迁移应该不难,对于简单的应用程序,你只需要将war文件复制到$JBOSS_HOME/server/default/deploy目录即可。 - Nivas
@mahesh 然而,在一个服务器上开发,然后在另一个服务器上部署可能会导致长期问题,特别是当你的应用程序变得越来越复杂时。从Tomcat到JBoss的初始迁移还可以接受,但在此之后,你的开发也应该在JBoss上进行。 - Nivas
对于第一步创建War文件,使用Eclipse右键和jar -cvf命令有区别吗?我问这个问题是因为这两种方法对我来说部署结果不同。http://stackoverflow.com/questions/37554449/whats-the-different-between-jar-cvf-my-web-app-war-and-eclipse-export-as-war - Ced

3

我们有一个实时服务器,但是由于我对这一切都很陌生,我不知道如何在实时服务器上部署我的Java Web应用程序?

我理解你的意思是,你已经有了一个公共IP分配给服务器。现在,你可以在该服务器上安装Tomcat,并将Tomcat端口开放给公众,这样就可以访问了。

现在,构建你的Web应用程序的war文件,并将其放入Tomcat的web-apps目录中,然后启动服务器即可。


我的应用程序也使用了MySql,所以我需要关注它的相关事项。 - mahesh
我将我的项目结构添加到了我的队列中。然后我能把MySQL安装到我的服务器上吗?也许这是一个愚蠢的问题,但这是我第一次尝试做这个。。 - mahesh
@JigarJoshi 让我们在聊天室里继续这个讨论 - mahesh
我在那里等了。没看到你在线。超时 :) - jmj
起初我在那里等你,然后我以为你不会来,所以我离开了房间。无论如何,感谢你的帮助。 - mahesh
显示剩余4条评论

1

在这里做出一些假设。您需要:

  1. 在生产服务器上运行Tomcat实例
  2. 有权限更改Tomcat实例
  3. 一个捆绑了您的应用程序的war文件

如果两者都有,那么您需要导航到Tomcat管理器页面并按照说明上传您的war文件。


0

将war文件部署到服务器

您可以手动将war文件复制到$TOMCAT_HOME/webapps目录中。

您也可以使用Tomcat 6的“管理器”应用程序进行部署。


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