作为一名资深(fu xiu)的程序猿来说,一直不想向IDEA低头可能是我对MyEclipse最大的尊重。最近利用SSM框架搭建了一个项目后台。但是由于开发人员并不能处于同一个局域网中,于是将后台需要部署到公网服务器中。但是与普通的JAVAweb项目不同的是该项目是一个基于maven的多模块工程。其实刚开始笔者一直在担心不知如何部署,在网上搜到的资料也是零星半点。通过网上的一些思路,加上自己半天的摸索,终于将后台成功部署到服务器上。下面就具体讲解一下如何部署maven多模块工程到公网服务器上。PS:笔者服务器选用某云服务器(服务器只要是公网运行的就可以了!)
1、对maven项目进行打包,文件格式为war包
我们在使用SSM框架进行构建项目的时候, 父工程的打包方式是pom,common工程的打包方式是jar,主要的项目工程是我们的聚合工程,打包方式是pom, 聚合工程中又包括dao、pojo、interface、service、web工程,其中前四个打包方式都为jar,web工程的打包方式为war,那么我们的思路就很清晰了——就是将web工程打包出来。下图给出项目文件的整体架构图。
项目结构图
对父工程、common工程、项目工程文件进行安装,安装方法就是对工程进行右键---> Run as ---> Maven install,操作过程如下图所示:
安装maven项目
如果项目没有同步更新的话,在这一步可以对项目行update,具体操作过程可以见下图。
更新maven项目
安装成功后在console框中可以看到安装成功之后的war包的路径,如下图所示。
war包所在文件夹
从计算机中打开这个路径,就会看到一个web工程的war包,我们可以记住这个路径,然后登陆上我们的云服务器。项目需要部署到Tomcat容器中,因此需要在服务器上安装tomcat容器,运行tomcat的前提还是需要保证服务器上具有jdk环境。因此还需要在服务器上安装jdk,安装jdk以及tomcat容器的步骤实质非常简单,配置环境变量的步骤稍稍有些复杂,如果有不清楚的读者还不清楚怎么安装,可以自行百度或者评论留言,如果有必要我也会一步一步地将安装过程整理成一个帖子发出来。
打包后的war文件
在此假设我们的服务器已经有了jdk环境以及tomcat容器。将我们上步的war包通过文件上传工具上传到我们的服务器环境,然后进入服务器中的tomcat安装包中。
tomcat安装包
将上传到服务器的war包复制到tomcat的webApps目录下(使用cp命令进行复制),复制之后的结果如下图所示:
复制成功自动解压文件
我们退回到启动bin目录下,也可以直接输入命令(这种需要我们对tomcat的安装包目录比较熟悉后使用),启动之后我们可以查看tomcat的启动日志
//启动tomcat的命令 进入bin目录下 运行startup.sh文件(假设我们目前在webapps目录下)
../bin/startup.sh
//查看tomcat启动日志的命令(假设在webapps目录下)
tail -f ../logs/catalina.out
看到如下的结果说明我们的tomcat启动成功:
tomcat启动成功
在浏览器中验证服务是否正常启动后台,在地址栏中输"公网ip:端口号(默认8080,可以自行设置端口80)/ 工程名/ controller文件下请求的路径",成功如下图所示。写到这里,说明我们的后台服务已经能够正常启动,相对于一个前后端分离的项目,日后我们只需对后台进行维护和添加相应的服务,前端可以根据自己的需求进行请求服务,不受距离限制,保证网络即可。在整个配置过程中笔者还遇到一些其他的问题,但都不是很难受的问题,只要我们认真看启动日志,就能够解决一多半的问题。在此期间我遇到一个无法连接jdbc的问题,问题描述很清晰:"can‘t not connect the jdbc"。遇到这种问题首先很容易想到是不是网络问题,但是对于本项目而言,数据库是使用的公网的oracle数据库,同一个服务器上的应该不存在这种问题,想想既然会在同一台机器那么我们是不是可以使用localhost或者127.0.0.1这种连接地址进行连接数据库(因为数据库相对于服务器来说应该说是本地环境),但是试了一下发现还是不可以,但是我觉得我想的道理应该没错,可能受于云服务器的安全限制。于是我又改回来原来的ip。使用本地服务器连接公网数据库,发现还是同样的错误,于是我就想到了公网的数据库很有可能没有跑起来,再然后我去服务器上查看oracle的进程以及端口都没有开启监听,使用navicat for oracle连接数据库都显示没有开启监听问题,这种更加确定了问题的所在--数据库没有启动。于是在服务器上又开始开启数据库,由于第一次在云服务器上操作oracle数据库显然也是遇到了许多困难,对一些命令不熟悉不知道如何开启监听,也害怕哪个命令会搞坏这个东西,但最终还是摸索开启了数据库(如果大家这部分还有疑问的话可以评论留言,我有空还是会把这部分的经验步骤写出来,虽然不可能面面俱到的讲解,但起码我们有了解决问题的能力!),最终数据库连接成功。至此mavne多模块项目也就成功部署到了云服务器上!
浏览器验证成功
如果这篇经验贴对您有帮助或者有点启发,那么笔者写这么多的内容也算没有白费,请您一定不吝点赞或者评论,有问题我们可以一起解决!