




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、李劲锋用osgi框架开发第一个web应用程序,什么是捆绑包?要编写一个非常普通的osgi应用程序,我们必须首先创建一个插件项目,然后编辑它的Activator类的start方法。事实上,我们所做的事情的本质是为OSGi的运行环境添加一个包。包的必要组成元素如下:MANIFEST。描述捆绑包的所有特性。包括名称、导出的类或包、导入的类或包、版本号等。代码:包括激活器类和其他接口和实现,这与普通的Java应用程序没有什么特别的区别。资源:当然,一个应用程序不可能没有资源文件,比如图片、属性文件、XML文件等等。这些资源可以与捆绑包一起存在,也可以以片段捆绑包的形式添加。启动级别的定义:可以在启动前
2、或运行中使用命令行参数来指定。有关启动级别的具体说明,请参考以下描述。框架做了什么?目标平台为我们准备了N个捆绑包,提供各种服务。在OSGi,这些捆绑包被称为系统捆绑包,就像装饰精美的房子一样。你只需要带个包就可以了,而不是铺地板和安装天花板。在我们的包进入Equinox环境后,OSGi框架做了以下工作:读取包的头信息,即MANIFEST。MF文件;加载相关的类和资源;解析依赖包;调用其激活器的启动方法来启动它;提供服务,如框架事件和服务事件;调用其激活器的停止方法来停止它;Bundle status,INSTALLED字面意思是,这意味着该捆绑包已成功安装。一个非常常见的状态,这意味着包已经
3、被成功解析(也就是说,已经找到了所有相关的类和资源),通常出现在STARTING之前或停止之后。开始字面意思是开始,但还没有回来。因此,不要让你的激活器过于复杂和活跃。这是我们最想看到的状态。这通常意味着捆绑包已经成功启动,但这并不意味着捆绑包提供的服务实际上也是正常停止,也就是停止,没有返回到卸载状态,也不能再改变状态。捆绑包的导入和导出,每个捆绑包可以有自己的公共部分和隐藏部分,并且每个捆绑包只能看到自己的公共部分、隐藏部分和捆绑包的其他公共部分。MANIFEST。包的MF文件提供了EXPORT/IMPORT包的关键字,这样您就可以只导出您希望其他人看到的包,而隐藏实现的包。您可以用版本号
4、对它们进行编码,这样您就可以同时发布不同版本的包。启动级别startlevel,startlevel越大,启动顺序越晚。在实际的应用环境中,我们的包相互之间有一定的依赖关系,所以在开始的顺序上应该有所不同,比如从奠定基础开始的盖楼。实际上,OSGi框架的初始起始级别为0,起始顺序如下:将起始级别增加1,如果找到匹配的捆绑包(即捆绑包的起始级别等于当前起始级别),则启动捆绑包;继续第一步,直到发现所有捆绑包都已启动,并且活动启动级别与上次启动的捆绑包相同。停止顺序,即首先将系统的启动级别设置为0:因为系统当前的活动启动级别大于请求的启动级别,所以系统首先停止捆绑;等于当前活动启动级别;将活动启动
5、级别降低1,并继续第一步,直到发现活动启动级别等于请求级别,两者均为0。开发图书索引功能的示例,在浏览器输入框中输入一个字符,您可以查询与该字符相关的所有图书名称。有三个捆绑包,即:查询响应捆绑包:web捆绑包,服务捆绑包:query service捆绑包,服务接口捆绑包:query service捆绑包,以及捆绑包之间的关系。查询响应包提供了用于输入要查询的字符的页面,并接受用户的查询请求。从BundleContext获取字典服务的服务,调用字典服务的查询接口获取查询结果,并将结果返回到页面。服务包提供与索引匹配的书名。服务接口包提供外部接口,tomcat端口被配置并更改为8080,如下图所
6、示,输入:-dorg . OSGi . service . HTTP . port=8080,点击运行。跑。OSGI框架嵌入在http服务器中。在“运行配置”对话框中创建一个新的OSGI框架运行配置,并从该配置的捆绑包中选择以下捆绑包:javax。servletmons . log ing;org . eclipse . equinox . http . jetty;org . eclipse . equinox . http . servlet;org . eclipse . OSGi;org . eclipse . OSGi . services;org . mot bay . jetty
7、;验证,单击验证捆绑包,弹出未检测到问题,验证通过。单击确定并运行,在控制台中输入命令SS,并输出运行的包,如下图所示:建立QueryServiceBuild,建立接口,在com.li.service.query下建立QueryServiceBuild接口和导出包,双击MANIFEST。选择运行时选项,单击添加.在导出包右侧,如图所示,在导出包功能中,选择com.li.service.query,点击确定,保存,导出成功,如下图所示。导出包的目的是调用其他包的实现。设置queryservice捆绑包,导入的包,双击MANIFEST。MF,选择依赖项选项,单击添加.在导入包的右侧,如图:导入包的功能,选择com.li.service.query,点击确定,保存,导入成功,如下图所示。导入包的目的是为包的内部调用创建查询服务类queryserviceimpBundle,如下图所示:写激活器代码,写激活器代码,注册包启动时我们提供的查询服务。我们向BundleContext注册该服务,我们将在WebBundle中找到该服务以供使用。代码如下:创建WebBuild,创建WebBuild,在src下创建文件页面/查询. htm,如下所示,将包引入WebBuild并创建WebBuild。在src下设置文件页面/query.htm,如下图所示,设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国双缸柱塞泵行业发展研究报告
- 2020-2025年中国电力安防行业市场深度分析及发展前景预测报告
- 2025年中国花卉种苗市场前景预测及投资规划研究报告
- 2023-2028年中国绿茶提取物行业市场发展现状及未来发展趋势预测报告
- 高危妊娠孕产妇医疗保险申请流程
- 食品行业会计职责说明
- 2021-2026年中国现制饮品市场供需现状及投资战略研究报告
- 综合交易市场项目可行性研究报告
- 食品企业危机管理应急预案演练计划
- 中国液压试验机市场竞争策略及行业投资潜力预测报告
- 中国糖尿病防治指南(2024版)解读
- 食堂食材配送采购投标方案(技术标)
- 山东省汶上县市级名校2025届中考生物全真模拟试卷含解析
- 2025年度智能硬件产品全国区域独家代理合同3篇
- 办公室安全知识培训课件
- 2025年四川省成都市青白江区招聘50人历年高频重点提升(共500题)附带答案详解
- 2025年浙江嘉兴市众业供电服务限公司招聘38人高频重点提升(共500题)附带答案详解
- 【课件】第12课+理想与典范-古希腊与古罗马美术+课件高中美术人教版(2019)美术鉴赏
- 建筑行业安全隐患举报奖励机制
- 公司事故隐患内部报告奖励机制
- Unit10 How to stay safe 教学设计-2023-2024学年教科版(广州)英语五年下册
评论
0/150
提交评论