jeesite4打包部署到服务器

官网给出的api

由于本周要到客户那里去部署安装,我先在虚拟机上模拟安装了一遍,遇到了挺多问题,但解决问题部署成功的喜悦也是加倍的

首先我在公司的服务器的VMware虚拟机上安装了一个不纯净的win8系统(即该系统已经安装了oracle)

我为明天过去客户那边安装系统列了一个步骤文档,由于系统较小并且是客户本地使用的,并没有用到服务器等,只是安装在一个PC机(win7 64) 

一、 在虚拟机中安装jdk1.8,我用的是jeesite4,安装jdk后要给虚拟机配置环境变量,并且要在dos命令窗口测试是否配置成功

 主要有三个环境变量:

  • JAVA_HOME :变量值填写jdk的安装目录
  •  Path :%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
  • CLASSPATH: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
  • 然后win+r快捷键打开cmd命令窗口 ,分别输入java -version javac java 是否有相应的输出

附上java -version截图:

二、 打包项目war包,因为jeesite4是基于spring boot、maven、mybatis的一个框架,在你开发的时候eclipse会安装maven的插件,所以我没按照官网的打包方式(其实有按照,但是报了一个maven参数的问题,我查了是JDK不一致但是我全改了也没有解决,放弃),而是用eclipse打包

 

前面的步骤主要是一些清理的工作,后面两部是打包,看到控制台输出build success就打包好了,然后去相应的物理路径拷贝相应的war包

在此之前我遇到听到问题的,首先打包的时候报错,是指我eclipse虽然配置了jre1.8,但是项目没有选中相应的jdk,然后最好配的是1.8jdk的路径,项目JDK也是

 还有就是我之前不怎么了解这个jeesite框架,导进eclipse有这么多模块,但是前面这些都类似于框架的源代码,我们开发的代码应该放在Web模块里面,因为其他模块都是打包成为jar包的模式,引入我们项目中的,我们最终打包也是右击web模块打包成为war包的

官网也给出了这一点说明,只用导入web模块就好了 

由于我之前不清楚这点,导致我部署后自己开发的模块页面都报404错误,而系统的页面却没有报错,最后我发现代码根本没有打包进来,最后我才发现这只是打包web层的代码,其他模块都是jar包引入,要么我就把代码移到Web层,要么我就先把其他模块打成jar包再打web的war包,后者在以后更新发布中都要打包两次,因此我选择了前者将我的代码移到web模块

 三、 准备数据库,由于是本地使用,需要在本地用system用户登陆(采用的是sqldeveloper客户端),登陆后创建表空间、用户、以及授权

在这里之所以创建表空间是因为我之前开发的时候在公司的服务器上也创建了表空间jeesite_data,然后给用户指定默认该表空间,在客户那里也一样操作,不然会导入表结构和数据因为没有表空间等报错

学过oracle的应该都知道这些基本操作,就不贴图了,说明一下建立用户的SQL脚本在框架中已经给出

然后在公司的服务器上拷贝数据库的数据,我用的客户端是sqldeveloper,比较简单,导出也是SQL形式的数据,表结构和表数据我是分开导出的,因为表结构中比如LOG并没有必要拷贝,所以我分开拷贝了

接着用创建好的jeesite用户登陆,并将导出的表结构和表数据导入到数据库中,那么数据库就准备完毕了

导入数据的时候可能会有无效月份的错误,可能是因为我安装的oracle客户端都是中文环境引起的,只需要把oracle的参数修改一下

--导入数据日期格式错误(原因是中文环境)
SELECT * FROM v$parameter WHERE name = 'nls_date_language';

ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';

参考的博客:https://blog.csdn.net/dbagaoshou/article/details/52514343

可能会用到的sql语句:

--查看所有用户
select * from dba_users d order by d.username

--查看所有表空间
select tablespace_name  from user_tablespaces;

--查看用户下所有的表
select * from user_tables;

--删除用户
drop user jeesite cascade

--删除表空间
DROP TABLESPACE JEESITE_DATA INCLUDING CONTENTS AND DATAFILES;

--建立表空间
create tablespace jeesite_data
logging
datafile 'C:\APP\ADMINISTRATOR\ORADATA\ORCL\JEESITE_DATA.DBF' 
size 1024m
autoextend on
next 1024m 
extent management local;

--建立用户、授权

create user jeesite
	identified by jeesite
	quota unlimited on users;
  
grant connect,resource,create session,select any table,
		create any view,create any table,create any index,
		drop any table,drop any view,drop any index
	to jeesite;
	
-- 提示 oracle.jdbc.xa.OracleXAResource.recover 错误需要授权:
grant select on sys.dba_pending_transactions to jeesite;
grant select on sys.pending_trans$ to jeesite;
grant select on sys.dba_2pc_pending to jeesite;
grant execute on sys.dbms_system to jeesite;


--修改用户默认表空间
alter database default tablespace jeesite_data

--1、查看表空间的名称及大小 
SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size 
FROM dba_tablespaces t, dba_data_files d 
WHERE t.tablespace_name = d.tablespace_name 
GROUP BY t.tablespace_name; 
--2、查看表空间物理文件的名称及大小 
SELECT tablespace_name, 
file_id, 
file_name, 
round(bytes / (1024 * 1024), 0) total_space 
FROM dba_data_files 
ORDER BY tablespace_name; 


--导入数据日期格式错误(原因是中文环境)
SELECT * FROM v$parameter WHERE name = 'nls_date_language';

ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';

四、 将war包拷贝到虚拟机中,并用winRAR解压缩文件打开,并解压到一个文件夹中,修改.yml里面的一些参数配置,比如你的数据库的IP地址,你也可以先修改再打包

修改好后,可以点击startup.bat运行脚本启动,看到tomcat started,就可以通过谷歌浏览器访问系统了,ip+端口号+上下文

五、设置开机自启

参考博文:

https://jingyan.baidu.com/article/af9f5a2d20973343140a45bd.html

https://jingyan.baidu.com/article/0eb457e507a5d403f0a90563.html

说一下大概步骤,测试你能启动项目访问之后,将你的 startup.bat启动脚本放到开机自启目录中,重启虚拟机后,它就会自己运行该文件,客户就可以直接访问了,但最好为了防止客户关闭该窗口,则也应该发送桌面一份快捷方式(注意:这里不要复制这个bat文件放到自启动文件夹,这样会因为找不到路径出错,而是通过拷贝或者发送快捷方式

六、定时拷贝oracle数据库到本地,拷贝的是.dmp形式的文件,sqldeveloper不支持该类型的文件导入,PL/SQL支持,亲测导出导入都成功

参考博客:

https://jingyan.baidu.com/album/48b37f8d1f31fa1a6564884c.html?picindex=15

https://blog.csdn.net/huaihuai19/article/details/82499980

大概步骤:通过写shell脚本拷贝数据库,然后通过windows的定时任务定时执行

shell脚本:

@echo off   
echo ================================================   
echo  Windows环境下Oracle数据库的自动备份脚本  
echo  1. 使用当前日期命名备份文件。  
echo  2. 自动删除7天前的备份。  
echo ================================================  
::以“YYYYMMDD”格式取出当前时间。  
set BACKUPDATE=%date:~0,4%%date:~5,2%%date:~8,2%  
::设置用户名、密码和要备份的数据库。  
set USERA=jeesite
set PASSWORD=jeesite
set SID=orcl
::创建备份目录。  
if not exist "C:\oraclebackup\data"       mkdir C:\oraclebackup\data  
if not exist "C:\oraclebackup\log"        mkdir C:\oraclebackup\log  
set DATADIR=C:\oraclebackup\data  
set LOGDIR=C:\oraclebackup\log  
exp %USERA%/%PASSWORD%@%SID%  file=%DATADIR%\%BACKUPDATE%.dmp 
::删除7天前的备份。  
forfiles /p "%DATADIR%" /s /m *.* /d -7 /c "cmd /c del @path"  
forfiles /p "%LOGDIR%" /s /m *.* /d -7 /c "cmd /c del @path"  
exit 

七、 总结:

这是我第一个从头到尾完成的项目,其中的艰辛只有自己清楚,也是第一次发现自己这么独立,没有人带,从0接触jeesite,给我的感悟非常深刻,成功的喜悦是大于解决困难的头皮发麻的,java码农就是什么都干,什么都要会,最大的感触就是,遇到问题沉着冷静,一定一定不管是前端还是后台都要养成看console后台报错,一般80%的错误可以通过查看后台解决,剩下的20%可以百度,其次你要会打断点,会调试程序,也要清楚框架的执行步骤。

砥砺前行,厚积薄发!励志成为2W起步的女码农,加油!chin up!

猜你喜欢

转载自blog.csdn.net/qq_37725560/article/details/91518462