听说你还不会在服务器上部署项目?看这一篇文章就够了

服务器
通过网上的一些思路,加上自己半天的摸索,终于将后台成功部署到服务器上。下面就具体讲解一下如何部署maven多模块工程到公网服务器上。PS:笔者服务器选用某云服务器(服务器只要是公网运行的就可以了!)

作为一名资深(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的启动日志

  1. //启动tomcat的命令 进入bin目录下 运行startup.sh文件(假设我们目前在webapps目录下) 
  2. ../bin/startup.sh 
  3. //查看tomcat启动日志的命令(假设在webapps目录下) 
  4. 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多模块项目也就成功部署到了云服务器上!

 

听说你还不会在服务器上部署项目?看这一篇文章就够了
浏览器验证成功

如果这篇经验贴对您有帮助或者有点启发,那么笔者写这么多的内容也算没有白费,请您一定不吝点赞或者评论,有问题我们可以一起解决!

责任编辑:未丽燕 来源: 今日头条
相关推荐

2021-11-10 07:47:48

Traefik边缘网关

2023-09-04 08:00:00

开发Java线程

2022-06-20 09:01:23

Git插件项目

2020-02-18 16:20:03

Redis ANSI C语言日志型

2023-02-10 09:04:27

2018-08-23 16:22:40

2018-04-27 15:33:59

Python装饰器

2019-09-05 08:14:44

Puppet部署结构

2020-08-17 09:25:51

Docker容器技术

2018-05-22 08:24:50

PythonPyMongoMongoDB

2020-07-03 08:21:57

Java集合框架

2023-10-17 08:15:28

API前后端分离

2019-05-14 09:31:16

架构整洁软件编程范式

2021-04-08 07:37:39

队列数据结构算法

2022-08-01 11:33:09

用户分析标签策略

2023-09-11 08:13:03

分布式跟踪工具

2017-03-13 09:50:46

Python装饰器

2019-04-02 10:51:29

浏览器缓存前端

2021-09-27 14:50:11

Python代码

2022-05-26 06:05:16

MySQL数据库
点赞
收藏

51CTO技术栈公众号