快速业务通道

使用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号