作为一个资深(fuxiu)程序员,我从来不想向IDEA低头,这可能是我对MyEclipse最大的敬意。最近使用SSM框架搭建了一个项目后台。但是由于开发者不能在同一个局域网,所以需要将后台部署到公网服务器上。但是不同于普通的javaweb项目,这个项目是一个基于maven的多模块项目。其实一开始笔者一直担心不知道怎么部署,网上找的资料也是零星的。通过网上的一些想法和自己半天的摸索,终于成功的把后台部署到了服务器上。下面将详细讲解如何将maven多模块项目部署到公网服务器上。PS:笔者的服务器选择云服务器(只要服务器运行在公网即可!)1.打包maven项目,文件格式为war包。我们在使用SSM框架构建项目时,父项目的打包方式为pom,普通项目的打包方式为jar。主工程project就是我们的聚合工程,打包方式是pom。聚合项目还包括dao、pojo、interface、service、web项目。前四种打包方式都是jar,web项目的打包方式是war,所以我们的思路很清晰——就是对web项目进行打包。下图展示了项目文件的整体架构。项目结构图安装父项目、普通项目、项目工程文件。安装方法是在项目上右击--->Runas--->Maveninstall。操作过程如下图所示:项目未同步则安装maven项目更新时,可以在这一步更新项目,具体操作过程见下图。updatemaven项目安装成功后,可以在控制台框中看到安装成功后的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启动成功:tomcatstartupSuccessfully在浏览器中验证服务是否正常启动,输入“公网ip:端口号(默认8080,可以设置port80)/工程名称/控制器文件下请求的路径”在地址栏,成功如下图所示。写到这里,说明我们的后台服务已经可以正常启动了。相比于一个前后端分离的项目,我们以后只需要维护后台,添加相应的服务即可。前端可以根据自己的需要请求服务,不受距离的限制。限制,只要保证网络。在整个配置过程中,笔者还遇到了一些其他的问题,但都不是什么难受的问题。只要仔细阅读启动日志,就可以解决一半以上的问题。期间遇到了无法连接jdbc的问题。问题描述很清楚:“can'tnotconnectthejdbc”。遇到这种问题,很容易想到是不是网络问题,但是这个项目,数据库是公网的oracle数据库,在同一台服务器上应该不会出现这种问题。想想既然会在同一台服务器机器上,我们是不是可以使用localhost或者127.0.0.1连接地址来连接数据库(因为相对于服务器来说数据库应该说是本地环境),但是我试过了发现还是不行,不过我觉得我觉得应该是对的,可能是受云服务器的安全限制。于是又改回了原来的ip。使用本地服务器连接公网数据库,发现同样的错误,于是想到可能是公网数据库没有运行,然后到服务器上查看oracle进程和端口没有开启用于监控。使用navicatfororacle连接数据库显示没有开启监控问题,进一步确认了问题——数据库没有启动。于是又开始在服务器上打开数据库。自从第一次在云服务器上操作oracle数据库,显然遇到了很多困难。有些命令我不熟悉,也不知道如何打开监视器。怕哪个命令会损坏这个东西,最后还是摸索着打开了数据库(这部分大家有什么问题可以评论留言,我还是会把这个的体验步骤写下来有时间的部分。虽然不可能全部解释清楚,但至少我们有解决问题的能力!),最后数据库连接成功。至此mavne多模块项目已经成功部署到云服务器!浏览器验证成功。如果这篇经验贴对你有帮助或者启发,写那么多内容也不枉此行。欢迎大家点赞或评论,有问题我们一起解决!
