使用Felix和Struts2开发Web应用 - 编程入门网
使用Felix和Struts2开发Web应用时间:2011-09-04 IBM 韦景琪 邵兵 周英简介: 本文首先对 OSGi 和 Felix 进行了简要的介绍,然后通过一个示例详 细描述了如何使用 Felix 和 Struts 开发 Web 应用,同时演示了 OSGi 的模块 化及动态部署特性。随后,讲解了 OSGi bundles 管理常用的命令操作,以及在 开发过程中的几个常见的问题的解决方法。 引言 Open Service Gateway Initiative(OSGi) 是一个针对 Java 动态模块开发的 规范。基于中间件的 OSGi 技术提供了一个面向服务,基于组件的开发环境,并 提供标准化的方式来管理整个软件生命周期。OSGi 为那些需要长时间运行,动态 更新并且对运行环境的影响尽可能小的系统提供了很好的支持。基于 OSGi 开发 的系统具有复杂度低、可重用、动态部署、可持续运行、开发简单等特点。 OSGi 技术结合了上述特点的各方面来定义一个动态服务部署框架,可以进行 远程管理。OSGi 技术起初只是关注于嵌入式领域,诸如机顶盒、服务网关、手机 等应用环境。但是它完美地适用在任一模块化、面向组件、面向服务的项目。 Eclipse V3.0 以后采用 OSGi 作为其模块化和动态化平台,设计了 Equinox 内 核,使用 OSGi 技术帮助其进行类载入,大大提升了 Eclipse 的启动速度。在应 用服务器上,WebSphere,Weblogic,JBOSS 等著名的服务器都支持或使用了 OSGi 技术。 Felix 是一个 Apache 旗下 OSGi 实现的开源框架,它的最终的目标是提供一 个完全兼容的 OSGi 框架和标准服务的实现。Felix 当前实现了 OSGi 规范 4 的 大部分内容,目前 Felix 提供的 OSGi 框架功能是非常稳定的。 采用 Spring DM 和 Jetty 等 Web 容器开发基于 OSGi 的 Web 应用的方法已 经在很多书本或技术文章上提及。但是这种开发方法与传统的 Web 开发差别较大 ,开发人员很难转换到这种开发模式上,并且它的稳定性也没有得到充分的验证 。 很多 Web 开发都采用 Struts 作为其控制层,很幸运的是,最新发布的 Struts2.1.8.1 中,加入了对 Felix OSGi 的支持,能够在传统的 Web 开发中集 成 OSGi 的模块管理平台,而且开发方法没有太大的改变,开发后的应用程序仍 像原先一样可以方便的部署在 Tomcat,JBoss 等容器上。 本文将通过下面的示例,详细讲述如何使用 Felix 和 Struts 开发 Web 应用 。 使用 Felix 和 Struts 开发 Web 应用示例 下面讲解的示例是一个获取时间信息并在 Web 浏览器中显示的简单示例,该 示例主要介绍了怎样使用 Felix 和 Struts 结合起来开发 Web 应用。该示例中 有两个获取时间信息的 bundle,这两个 bundle 实现同一个接口服务,但是有不 同的实现,这两个 bundle 可以在应用中动态部署。通过该示例,可以体现出基 于 OSGi 开发的项目具有良好的模块化以及 OSGi 的 bundle 动态部署的能力, 从而说明了 OSGi 适用于开发持续运行且需要动态更新的系统。 在这个示例中,一共包括五个工程,一个 Web Application 工程和四个 OSGi bundle 工程。Web Application 工程是用于 Web 部署。四个 OSGi bundle 中, 包括一个 Web bundle,用于 Web 交互;一个 time service bundle,包含一个 获取时间信息的接口服务;一个 local time service bundle,实现接口服务, 用于获取本地时间信息;一个 utc time service bundle,用于获取世界标准时 间(Universal Time Coordinated,UTC)信息。 本示例的结构原理如图 1 所示。在 Web Container 中注册了 Struts OSGi 的监听器,该监听器会去启动或停止 Apache Felix Host,Apache Felix Host 是 Struts OSGi Plugin 和 Felix Framework 的连接点。Felix Host 会去创建 和初始化 Felix Framework,Felix Framework 负责管理系统中的其余的所有 bundle,Struts |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |