LMS scorm1.2 JAVA开发经历

最近一直在看scorm资料,初步要求开发一个能够解析scorm1.2课件的LMS系统。

经过近一个星期的努力,初步明了了如何实现“LMS”系统,现与大家一同分享,希望能给予帮助。

一.首先弄清楚几个概念:

asset(微单元/原始素材):学习资源的最基本形式是微单元。微单元是上传到网上并呈现给学习者的电子形式的媒体,如文本、图像、声音、评价对象或任何其他一块数据。几个微单元可以集合在一起建立新的微单元。

SCO(可共享内容对象):是一个或者多个微单元的集合,它可以在SCORM运行环境中与学习管理系统(LMS)进行数据传递。可重用内容对象是LMS通过SCORM运行时间环境可以跟踪的最低粒度水平的学习资源。

LMS(学习管理系统):能够解析scorm课件,跟踪学习体验者的学习记录的web系统。



二.scorm课件交互过程

1.下载SCORM运行时间环境(RTE)http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Forms/AllItems.aspx?RootFolder=%2fTechnologies%2fscorm%2fSCORMSDocuments%2fPrevious%20Versions%2fSCORM%201%2e2%2fSRTE%20%28SCORM%201%2e2%29&FolderCTID=0x0120007F801FCD5325044C89D91240519482D7&View=%7b4D6DFFDE%2d3CFC%2d4DD9%2dA21A%2d4B687728824A%7d

解压安装到本地,如:D:\Sample_RTE_1_2_2 。

2.按照网上SCORM RTE安装说明,启动D:\Sample_RTE_1_2_2目录中的Tomact,结果启动失败。

3.无奈打开myeclipse工具,新建一个web工程,拷贝源码目录(D:\Sample_RTE_1_2_2\source)及web目录(D:\Sample_RTE_1_2_2\jakarta-tomcat\webapps\adl)中的资源文件。以为万事大吉,赶紧发布部署,不料登录系统,应用导入scorm1.2课件时后台解析xml异常。

4.几番折腾发现缺了好几个jar包,既然缺那就就加上去呗,果然导入课件成功了。下来就是注册课件了,按页面提示操作,系统提示成功,

可后台一堆错。

5.还好哥用的是myeclipse,那咱就调试下,发现F:\SampleRTEFiles\tempUploads\C3D226C574868E6AC60457C8FE773508\imsmanifest.xml 文件不存在,只一个zip的文件,打开一看zip文件中包含上述文件,抱着一试的心理将压缩文件解压到当前目录,嘿,成功了!

6.本以为这下大功告成了,可点击显示课程连接时,点击进入课件,页面正常跳转,没过一会猛抛“Unable to find an API adapter”异常

7.查看异常出处:异常来自:APIWrapper.js/getAPI函数。在网上搜了些资料如下图:


认为API实例是LMS系统中的一个java类对象实例,可怎么想也不知道js怎么可以调用java对象实例呢。直到发现RTE代码中的APIAdapterApplet类,才恍然明白,是通过applet形式交互的。其实上图“API实例”是指LMS系统页面中的js自定义对象。

8.新建一个jsp页面,内容如下:


<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<head>
<script type="text/javascript">
window.API = new Object();
API.name = "hero";
API.LMSInitialize=function(param){
return window.document.APIAdapterApplet.LMSInitialize(param);
};
API.LMSFinish=function(param){
return window.document.APIAdapterApplet.LMSInitialize(param);
};
API.LMSGetValue=function(element){
return window.document.APIAdapterApplet.LMSGetValue(element);
};
API.LMSSetValue=function(element,value){
return window.document.APIAdapterApplet.LMSSetValue(element,value);
};
API.LMSCommit=function(param){
return window.document.APIAdapterApplet.LMSCommit(param);
};
API.LMSGetLastError=function(){
return window.document.APIAdapterApplet.LMSGetLastError();
};
API.LMSGetErrorString=function(errorCode){
return window.document.APIAdapterApplet.LMSGetErrorString(errorCode);
};
API.LMSGetDiagnostic=function(errorCode){
return window.document.APIAdapterApplet.LMSGetDiagnostic(errorCode);
};
</script>
</head>

<body>


<applet code="org/adl/samplerte/client/APIAdapterApplet.class" codebase="plugin/" name="APIAdapterApplet" width="550" height="100"></applet>
<iframe src="viewCourses.jsp" width="900" height="600"></iframe>
</body>
</html>

浏览器中访问该页面,点击进入课件学习,控制台有日志信息输出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值