快速业务通道

使用Felix和Struts2开发Web应用 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
OSGi Plugin 会监听 bundle 的变化,如果发生变化的 bundle 是一个 Struts bundle, 则会去加载 Struts 的配置。

图 1. 示例结构原理图

使用Felix和Struts2开发Web应用(2)

时间:2011-09-04 IBM 韦景琪 邵兵 周英

建立 OSGi 的 Web 开发环境

本文示例使用的 Web 开发环境包括如下组件:

Eclipse 3.5 for Java EE Developers

Sun JDK 1.6.0

Tomcat 6.0.24

Struts 2.1.8.1 (Essential Dependencies Only)

spring-osgi-1.1.2-with-dependencies (Only Need when adding Spring Support)

Web Application 工程的创建方式与通常的 Web 工程类似,但是需要加入 Felix 的支持和 Struts2 OSGi Plugin. Felix 是 OSGi 的平台,用于管理整个 系统中的所有的 bundle,而 Struts2 OSGi Plugin 是 Struts2 和 OSGi 连接的 桥梁,通过 Struts2 OSGi Plugin 将 Felix 融入到 Struts2 框架中。另外,还 需要加入 Struts2 OSGi Admin bundle,这个 bundle 向管理人员提供基于 Web 的管理 OSGi 平台中的 bundle 的操作入口。同时在 web.xml 中需要加入 Struts OSGi 监听器,这样 OSGi 平台中的 bundle 发生变化时,会触发该监听 器去做一些与 Struts 相关测操作,例如增加 Action 或使 Action 失效。

web.xml 中过滤器和监听器部分的配置内容如清单 1:

清单 1. web.xml 过滤器和监听器配置

<filter>    <filter-name>struts2-prepare</filter-name>   <filter- class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter< ;/filter-class>   </filter>   <filter>   <filter-name>struts2-execute</filter-name>    <filter- class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter    </filter-class>   </filter>   <filter-mapping>    <filter-name>struts2-prepare</filter-name>    <url-pattern>/*</url-pattern>   </filter-mapping>   <filter-mapping>    <filter-name>struts2-execute</filter-name>    <url-pattern>/*</url-pattern>   </filter-mapping>   <listener>    <listener- class>org.apache.struts2.osgi.StrutsOsgiListener</listener- class>   </listener>   <listener>    <listener- class>org.apache.struts2.dispatcher.ng.listener.StrutsListener    </listener-class>   </listener>

Web Application 工程的目录结构如图 2 所示:

图 2. Web Application 工程的目录结构

使用Felix和Struts2开发Web应用(3)

时间:2011-09-04 IBM 韦景琪 邵兵 周英

将 Web Application 部署到 Tomcat 上并启动 Tomcat,然后在浏览器中输入 http://localhost:8080/webapp/osgi/admin/bundles.action, (webapp 是项目 部署到 Tomcat 中的名字 ) 如果看到了类似于 图 5的 bundles 列表,说明 OSGi 环境配置成功。

开发获取时间消息接口服务 bundle

消息接口服务 bundle 是提供消息服务的接口,该接口将被 Web bundle 所使 用,其他 bundle 可以不同的形式实现该接口。在这里利用 eclipse 新建插件工 程的功能来创建 OSGi bundle。需要特别设置 an OSGI framework 为 standard 方式,这种方式允许部署项目到标准的 OSGI 容器中。新建 OSGi 工程的向导如 图 3 所示。

图 3. 新建 OSGi 工程向导图

在该项目中开发一个用于获取时间信息的接口,通过该接口可以获取字符串形 式的时间信息。

清单 2. 获取时间服务接口代码

package com.ex

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号