使用 Felix 和 Struts2 开发 Web 应用
2010-07-13 00:00:00 来源: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 OSGi Plugin 会监听 bundle 的变化,如果发生变化的 bundle 是一个 Struts bundle, 则会去加载 Struts 的配置。
更多精彩
赞助商链接