国内首款基于JAVA与MYSQL开发的网络考试系统ExamStack(Exam++)
在Exam++考试系统第一版的基础上,我们对ExamStack V2.0进行了大量代码重构,同时也对数据模型做了部分调整。为了减小学员考试交卷时大量并发带来的系统风险,我们尝试采用成熟的消息队列框架RabbitMQ来解决这一问题,因此我们的数据库以及系统的架构同第一版相比,发生了不小的变化。
Management.war和
Portal.war需要部署在
同一个目录下。
ExamStack V2.0增加了
培训功能,因为需要保存培训材料,所以请留出足够的磁盘空间(以实际需要为准)。
要保证RabbitMQ服务状态为
运行状态。
要保证ScoreMarker状态为
运行状态,同时ScoreMarker调用服务地址要配置正确。
操作系统:Linux、Windows
内存:最低2G,推荐8G
Tomcat 8
RabbitMQ
MySql 5.0以上
在MySql中新建一个数据库
examstack,字符集使用
utf8 -- UTF-8 Unicode
使用我们提供的
examstack.sql还原
examstack
设置好对应的访问权限
安装最新版本的RabbitMQ,具体安装方法,在网络上可以找到很多。
配置
将
Management.war和
Portal.war放到Tomcat应用程序目录(
webapps)下。
启动Tomcat,webapps目录下会生成两个文件夹(
Management和
Portal)。
分别进入到
Management/WEB-INF/Spring和
Portal/WEB-INF/Spring下修改
root-context.xml文件,将数据库地址、用户名和密码修改成正确的内容。修改完成后重启tomcat服务器。
需要修改的内容如下:
访问
http://localhost:8080/Management和
http://localhost:8080/Portal可以进入到管理后台页面和学员页面,并可以正常登陆,则应用配置成功。
注意:在完成这一步后学员考试交卷无法完成,需要部署
ScoreMarker。
部署ScoreMarker
Linux下 解压scoreMarker到/opt/目录。 确认config/scoremarker.properties文件配置正确。 拷贝scoremarker 执行脚本到init.d目录下并检查脚本中的配置。
Windows下 解压scoreMarker到任意目录。 确认config/scoremarker.properties文件配置正确。 修改installService.bat中APP_HOME为scoreMarker目录。 运行installService.bat后启动服务ScoreMarkerService服务。
系统架构
考试和练习
题库管理
其他
不能获得数据库连接
Cause:org.springframework.jdbc.CannotGetJdbcConnectionException:Could not get JDBC Connection;nested exception is java.sql.SQLException:Access denied for user 'root'@'localhost'
请检查数据库连接字符串是否正确,同时检查数据库名、用户名和密码是否设置正确。
交卷失败
RabbitMQ没有启动会导致应用程序连接RabbitMQ失败
请检查
RabbitMQ服务是否启动。
学员交卷后,管理界面学员对应的状态没有改变
交卷成功后,学员考试状态会修改成
已交卷或者已阅卷,如果在提示“交卷成功”后没有发生任何变化,证明ScoreMarker没有正常启动或者ScoreMarker调用接口失败。
请检查ScoreMarker是否启动。同时请保证ScoreMarker能调用到Management提供的接口,这一点在ScoreMarker部署中已经说明。
RabbitMQ、MySql、ScoreMarker无法启动或经常被Kill掉
我们在测试过程中发现,内存不足的情况下(我们使用的是1G内存),RabbitMQ、MySql、ScoreMarker经常被Kill,而且无法启动,查看日志会发现提示内存不够。
查看下日志,如果是内存不够的原因,那就赶紧加内存吧。为了保证系统正常运行,内存不能低于2G。