快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
ample.time.service;   public interface TimeService{   public String getTime();   }

需要将该 bundle中的服务包的类和接口就暴露给了其他的 bundle,其他的 bundle可以通过 import这个包来使用其中的类和接口。

开发获取本地时间消息实现服务 bundle

获取本地时间消息服务 bundle 实现了时间消息接口服务。在该 bundle 种返 回的时间消息是当前时区的时间信息。因为用到了接口服务包,所以需要在 Import-Package 中加入接口服务包。

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

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

清单 3. 获取本地时间实现代码

package com.example.time.local.service;   import java.text.SimpleDateFormat;   import java.util.Calendar;   import java.util.Date;   import com.example.time.service.TimeService;   public class LocalTimeService implements TimeService{   @Override   public String getTime(){   Calendar calendar = Calendar.getInstance();   Date date = calendar.getTime();   SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd  HH:mm:ss");   return "The local time:" + formatter.format(date);    }   }

OSGi bundle 中的服务要能够被其他 bundle 使用,使用将服务发布出来。在 该 bundle 的 Activator 的 start() 方法中注册该服务,可以发布这个服务。 当这个 bundle 启动时,将获取本地时间发布为一个服务。服务发布的代码如清 单 4 所示。

清单 4. 服务发布

public void start(BundleContext context) throws  Exception{    context.registerService(TimeService.class.getName(), new  LocalTimeService(), null);   }

开发获取 UTC 时间消息实现服务 bundle

获取 UTC 时间消息实现服务同样实现了时间消息接口服务,该 bundle 主要 是用于和上一个 bundle 即获取本地时间消息服务进行动态的替换,用于表现 OSGi 的动态部署的能力。

清单 5. 获取 UTC 时间服务实现

public class UTCTimeService implements TimeService {    @Override    public String getTime() {      Calendar calendar = Calendar.getInstance();   int zoneOffset = calendar.get(Calendar.ZONE_OFFSET);   int dstOffset = calendar.get(Calendar.DST_OFFSET);   calendar.add(Calendar.MILLISECOND, -(zoneOffset +  dstOffset));   Date date = calendar.getTime();   SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd  HH:mm s");   return "The UTC time:" + formatter.format(date);    }   }

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

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

开发 Web bundle

Web bundle 是系统 Web 交互的入口。在该 bundle 中需要使用时间消息接口 服务 bundle 中的接口,所有需要在 MANIFEST.MF 的 Import-Package 加入时间 消息接口服务包,另外,为了能够识别出该 bundle 是一个 Struts bundle, 需 要将该 bundle 设置为可被 Struts2 支持 , 即在 MANIFEST.MF 中加入 Struts2-Enabled: true, 这样该 bundle 中的 struts.xml 就会被加载。最终的 MANIFEST.MF 的配置如清单 6。

清单 6. Web Bundle 的 MANIFEST.MF 配置

Manifest-Version: 1.0   Bundle-ManifestVersion: 2   Bundle-Name: com-example-time-web   Bundle-SymbolicName: com.example.time.web   Bundle-Version: 1.0.0.qualifier   Bundle-Vendor: keki   Bundle-Require

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号