使用Felix和Struts2开发Web应用 - 编程入门网
dExecutionEnvironment: JavaSE-1.6
Struts2-Enabled: true
Import-Package: com.example.time.service,
com.opensymphony.xwork2,
org.apache.struts2.osgi.interceptor,
org.osgi.framework;version="1.3.0"
为了实现用户交互,还需要创建一个获取时间消息响应的 action。该 Action 的 execute() 方法代码如清单 7 所示。 清单 7. Action 实现方法
这个 Web bundle 中独立的建立一个 struts.xml,这个 struts.xml 将会为 单独加载,需要注意的是 Struts 的 pacakge 继承 osgi-default 这个包, osgi-default 已在 struts2-osgi-plugin 这个 jar 包里面定义。 清单 8. Web Bundle struts.xml 的 action 定义
使用Felix和Struts2开发Web应用(6)时间:2011-09-04 IBM 韦景琪 邵兵 周英打包部署 将开发好的四个 bundle 导出成 plugin 的包,并将它们放在 Web App 工程 中 ,bundles 的目录结构如图 4 所示。 图 4. Web Application 中的 bundles 目录结构 运行演示 启动 Tomcat,在浏览器地址栏输入 http://localhost:8080/webapp/osgi/admin/bundles.do, 可以看到所系统中所 有的 bundle 的列表。 图 5. 部署的 bundles 列表 使用Felix和Struts2开发Web应用(7)时间:2011-09-04 IBM 韦景琪 邵兵 周英在浏览器地址栏输入 http://localhost:8080/webapp/time/time.do,可以获 得时间信息,此时的时间信息为本地时间信息,当前 TimeService 这个服务有 local time service 和 UTC time service 两个实现,调用的是 local time service 这个实现。 图 6. 获取本地时间页面显示 此时,在浏览器地址栏输入 http://localhost:8080/webapp/osgi/admin/shell.do,然后输入命令 stop 1, 将 Local time service 这个 bundle 停止掉,输入命令 ps, 可以看到 local time service 这个 bundle 的 state 已经变为 Resolved. 图 7. OSGi Shell 管理页面 在浏览器地址栏再次输入 http://localhost:8080/webapp/time/time.do 得 到的结果如图 7 所示。 图 8. 获取 UTC 时间显示页面 使用Felix和Struts2开发Web应用(8)时间:2011-09-04 IBM 韦景琪 邵兵 周英通过上面的演示,我们可以看到 OSGi bundle 的动态部署能力。 bundle 的管理 通过 Felix 可以方便的管理项目中的 bundle,并且实现 bundle 的热部署, 即插即用,即删即无的特性,特别适用于可持续运行的系统。 添加 bundle 输入命令 install <bundle-url>,然后输入 start <bundle- id> 即可。如 $install file:/k:/plugins/com.example.time.local_1.0.0.qualifier.jar , $start 7 更新 bundle 输入命令 update <bundle-id> <bundle-url> 即可。如 $ update 1 file:/k:/plugins/com.example.time.local_1.0.0.qualifier.jar 启动和停止 bundle 输入命令 start <bu |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |