`
liuyf
  • 浏览: 34121 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

sakai 应用开发的hello world

阅读更多
本文先生成一个具体的系统,让大家有感性的认识,再对代码做一些简单的分析。
本文的前提是安装 sakai project app builder;同时你得安装maven,并能简单的使用。http://blog.csdn.net/totogogo/archive/2007/12/17/1942867.aspx这篇文章讲了maven 的编译生命期,讲得那是很不错。
采用Sakai Project App Builder,如下图:



选择Project Type为Wicket,Implementations为Hello World app,Sakai  version为K1(2.6.x+)
用cmd到项目的目录下,输入mvn package,在tool目录下有一个target目录,会找到一个sakaiapphelloworld-tool-0.1.war文件。
将这个文件拷到sakai部署的webapps目录下,重启sakai就可以了。
接下来,在浏览器中安装并测试工具。
点击”Sites”,选择一个站点,点击”Add/Edit pages”,到达Page编辑,点击”New Page”,增加一个Page,随便其个名字,点击下面的”Continue Editing Tools”,在工具列表中选择sakai-app-helloworld,如下图:



保存后,算是安装好了。
接下来到达对应的”Site”,就可以看到效果了:



下面说说代码结构。
带着这么一个疑问去看代码:示例产生了什么代码,使得在浏览器中的后台能看到并选中相应的工具。
这个helloworld的包类结构如下:



经过阅读,里面的四个.java 文件,都是和为实现Wicket渲染的代码,并没有主动注册的代码块。
那么,推断该工具是被动注册的,即sakai框架主动加载工具,那么在xml配置文件中就一定有相关信息。
于是,用dir列出该工厂下的所有文件,观察到一个“可疑文件”,”sakai.sakaiapphelloworld.xml”,打开,有下面的描述:



看字段命名推测,再看值肯定,这里就是注册的配置了。
有了推测,我们再找到内核,tool/impl/ToolComponent.java,里面有一个register函数,也发现确实是取这几个字段的。
为了让你看得明白,我们再来跟踪注册过程。
在 调试中才发现,原来注册是在ActiveToolComponent.java中。
有如下堆栈:



其中ToolListener.contextIntialized实现如下:



如上面注释中说的,这个函数找出webapp目录下/tools目录中的资源进行注册。
  • 大小: 18.8 KB
  • 大小: 7 KB
  • 大小: 7.6 KB
  • 大小: 12.5 KB
  • 大小: 7.4 KB
  • 大小: 7.4 KB
  • 大小: 10.3 KB
1
0
分享到:
评论

相关推荐

    Sakai的开发文档

    ### Sakai开发文档知识点概述 #### 一、Sakai简介 - **定义与起源**:Sakai是一项由美国的几所顶尖大学——印第安纳大学、密歇根大学、斯坦福大学以及麻省理工学院共同发起的开源课程管理系统(CMS)项目。该项目始于...

    Sakai-src基于Sakai的源码文件

    3. **Web应用**:Sakai基于MVC(Model-View-Controller)模式,利用Struts或Spring MVC进行Web应用开发,确保了良好的用户体验和高效的服务器端处理。 4. **国际化与本地化**:Sakai支持多语言,源码中包含了大量的...

    sakai charon分析文档

    Sakai作为一个广泛应用在高等教育领域的开源课程管理系统,其设计具有高度的模块化和灵活性,这使其成为了一个非常受欢迎的选择。对于那些需要定制化教学平台的企业、高校及个人开发者来说,Sakai不仅提供了强大的...

    Sakai部署步骤 (1)1

    - `/iscas/sakai/tomcat7/conf/server.xml`: 这是Tomcat服务器的配置文件,你需要在此处配置Sakai应用的上下文路径,以及连接到MySQL的数据库参数。 - `/iscas/sakai/tomcat7/bin/setenv.sh`: 在这个文件中,设置...

    sakai样式修改手册

    在进行Sakai的样式修改时,确保你的改动不会破坏其他功能,并且遵循Sakai的开发和贡献指南,以保持与社区的兼容性。同时,进行充分的测试以验证修改的效果,并考虑不同浏览器和设备的兼容性问题。通过这些步骤,你...

    sakai 的权限流程分析-详细的源码调用过程

    sakai是广泛应用于高校的开源课程管理系统,具有良好的架构设计,具有很好的解耦行、扩展性和稳定性。目前sakai的二次开发广泛流行于企业、高校和个人,希望有兴趣我们可以共同交流,欢迎交流!

    Sakai 框架与内核 附件下载

    Sakai框架与内核是其核心组成部分,它们共同构成了一个强大的系统架构,支持各种教学和学习应用的开发与集成。 一、Sakai框架 Sakai框架是一个服务导向架构(SOA),它的设计目标是提供可扩展性和灵活性,以适应...

    sakai的安装配置

    Sakai 是一款开源的教育协作平台,广泛应用于教育机构中。本文档旨在详细介绍 Sakai 2.9.0 版本的安装与配置过程,并解决在安装过程中可能遇到的一些常见问题。 #### 二、环境准备 在进行 Sakai 的安装配置前,...

    sakai doc 2.9.3

    通过深入阅读和理解这个 Javadoc,开发者可以更有效地利用 Sakai 平台,创建符合需求的教育应用,实现教学、学习和管理功能,同时也能够参与到 Sakai 的社区开发中,为项目的持续改进贡献力量。

    SAKAI 架构 的前世今生

    SAKAI,作为一个开源的教育技术平台,自2003年成立以来,已经在全球范围内被广泛应用于教学、学习和协作。它的设计初衷是为了提供一个灵活、可扩展且易用的环境,促进学术交流与合作。本文将深入探讨SAKAI的历史演变...

    Sakai 2.6 配置

    Sakai是一个开源的教育软件平台,它提供了丰富的协作和学习工具,广泛应用于高等教育、K-12学校、企业培训等场景。Sakai 2.6是该平台的一个较早版本,虽然现在已经有了更先进的版本,但了解它的配置对于历史项目维护...

    sakai 用户注册业务流程分析

    Sakai 是一款被广泛应用于高等教育领域的开源课程管理系统(CMS)。它不仅提供了一个强大的平台用于支持教学与学习活动,而且还具备良好的架构设计,能够确保系统的解耦性、扩展性和稳定性。这使得 Sakai 成为了企业...

    E-learning sakai 用户手册

    Sakai 是由高校、商业组织和个人开发者组成的社区,致力于开发一个通用的协作学习环境(Collaboration and Learning Environment,CLE)。Sakai是基于Educational Community License(开源软件许可证的一种)的教育软件...

    使用Sakai构建开放式教学平台(完整版)

    4. **开发模式开放**:Sakai基金会负责项目的方向决策,社区和学校可根据自身需求定制开发新的工具,如Melete和Jforum,体现了用户参与和创新精神。 #### Sakai的架构设计 Sakai采用的是三层架构设计,即表示层、...

    sakai-portal-api-2.9.0-b05.zip

    标题 "sakai-portal-api-2.9.0-b05.zip" 暗示了这是一个关于Sakai门户API的版本包,版本...同时,由于是开源项目,开发人员可以深入研究源代码,根据自己的需求进行修改和扩展,从而提升Sakai系统的功能性和用户体验。

    sakai安装文档,很有用的

    sakai安装文档,很有用的安装Sakai App Builder

    sakai 工具权限设置逻辑

    sakai是广泛应用于高校的开源课程管理系统,具有良好的架构设计,具有很好的解耦行、扩展性和稳定性。目前sakai的二次开发广泛流行于企业、高校和个人,希望有兴趣我们可以共同交流。欢迎交流!

    Sakai部署步骤1

    Sakai是一个开源的协作与学习管理系统,广泛应用于高等教育机构,用于构建在线课程和教学环境。 **一、部署环境准备** 在部署Sakai之前,我们需要确保有一个合适的运行环境。首先,我们要安装MySQL数据库服务器,...

    SourceCode版本Sakai安装配置

    2. 配置Tomcat的`server.xml`,添加Sakai的应用上下文。 **八、部署Sakai** 1. 将Sakai构建生成的WAR文件复制到Tomcat的`webapps`目录。 2. 启动Tomcat,Sakai应用将自动解压并运行。 **九、初始化Sakai** 1. 访问...

Global site tag (gtag.js) - Google Analytics