使用 Felix 和 Struts2 开发 Web 应用
2010-07-13 00:00:00 来源:WEB开发网图 1. 示例结构原理图
建立 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>
更多精彩
赞助商链接