sitesCMS 环境搭建及IDEA仿真调试
前言
开源中国上的链接:https://www.oschina.net/p/sitescms
sitesCMS 是基于 JFinal 的 多站点 CMS 内容管理系统,JFinal4.9全家桶(JFinal+Enjoy+ActiveRecord+JFinal-Undertow),除JFinal外无其他重度依赖。精简的多站点功能设计,极易二次开发,可以用来阅读,提高对 jfinal的理解。
打开工程
把源码下载后,就可以用IDEA打开,打开工程的时候会有提示,是使用eclipse方式还是maven方式?我选择了 maven方法打开。
发现有一个红色错误提示,如下,
这是缺少一个库,添加进来即可。
但是又出现了一个问题:无法保存设置,提示如下:
解决方法:出现这个问题的原因是,多模块Maven项目。删掉就可以了,如下图,把方框中的那个大胆删掉。
到这一步,终于没有错误了,可以编译通过啦。
运行
点击main函数旁的绿三角,如下:
这时,又弹出一个错误:
解决方法:
打开配置,
选择好jre版本即可(如下图所示),这个错误就不会再弹出来啦。
问题2:端口不可用错误。
再次运行,还是出现了新问题。
解决方法:
把端口号改一下,如下:
随之,又有新的问题出现了。
问题3:mysql很多的错误。
sql错误之一:Plugin start error
原因分析:
这里出现了一系列的SQL错误,可能是因为还没有创建数据库的原因吧,待验证。
打开 cmsConfig.txt,这个是就是SQL的配置文件了,可以看到数据库名,用户名,密码等信息。
按照这些信息创建一个数据库吧。
4.数据库问题:init datasource error
解决方法:创建好数据库,并设置好用户名密码等参数,解决方法的具体细节请参考上文。
有点需要注意的是,MYSQL的版本要注意,官方写着的是 MySQL 5.0.96,所以还是装这个版本吧。
5.错误:Failed to decrypt.
解决方法:也就是要把密码加密一下才行。
整个工程里搜索关键字“publicKey“,定位到生成加密字符串工具的工程:
然后填入密码,即可生成对应字符串。再填入到 cmsConfig.txt 文件里即可,如下:
再重新运行,这个问题就不会出现啦。
6.问题:Unable to load authentication plugin 'caching_sha2_password'.
解决方法:
参考: https://blog.csdn.net/w605283073/article/details/88096598
主要原因8.x版本的验证模块和之前版本不同:
5.x版本是:default_authentication_plugin=mysql_native_password
8.x版本就是:default_authentication_plugin=caching_sha2_password
哎,还是切换回 mysql5.x 的版本吧。
果然,切回到 mysql 5.0 之后,该问题就不再出现了。
问题7. Table 'sitescms.accesslog' doesn't exist
解决方法:
缺了表格,把这个表格加上去就行。要加入以下表格:
问题8.Failed to load class "org.slf4j.impl.StaticLoggerBinder".
解决方法:
原来这是因为sl4j和log4j的不兼容导致的。这个问题只影响日志,可以先不管。
问题9. Unknown column 't.status' in 'where clause'
解决方法:
列名不存在。填入就行,如下 :
问题10:Public Key Retrieval is not allowed
解决方法:
在最前面加入参数 allowPublicKeyRetrieval=true&useSSL=false
到这里,终于可以正常运行起来了,显示的信息如下:
访问后台前台
前台地址: http://localhost
后台地址: http://localhost/cms 管理用户名为wumoxi,默认密码111111
终于可以到后台管理界面了,
但是,前台却显示失败:
但是,当我填入账号和密码时,又出现了新问题:“服务响应异常,请联系管理员处理!”
解决方法:
那是因为我没有导入初始化数据
系统的初始化数据库sql文件是
sitesCMS/src/main/resources/sql/sitescms-all.sql,包含数据表结构和测试数据,直接运行导入即可。
前面运行的时候,提示缺一些表格,我就根据提示添加进去了,其实那个步骤是错误的,应该通过导入sql文件的方法来解决。
1.idea先连上数据库。
再选中数据库
2.
3.
一开始是行的,不过,后面重启电脑后,突然的就好了。数据库里也能看到数据了,如下:
打包成release文件
1.打开maven栏
2.点击 clean comile package,即可生成 release部署文件。
生成的文件如下:
点击批处理,即可运行,运行成功显示如下:
在ubuntu服务器上部署
1.先装好绿免安装的mysql5.0. 再把在window上调好的数据库文件复制过去。
2.装好java1.8。
装java1.8的方法如下:
输入java,就会提示:
按提示输入 sudo apt install openjdk-8-jre-headless 即可。
3.把release文件复制上去,直接运行即可。
为了方便调试,可先把jfinal.sh里改成:
输入运行命令:
./jfinal.sh start
遇到问题:port: 80 not available
解决方法: