osgi框架是什么(如何解决原系统中嵌入osgi框架时的包冲突问题)

2024-07-28 06:56:33 2

osgi框架是什么(如何解决原系统中嵌入osgi框架时的包冲突问题)

本篇文章给大家谈谈osgi框架是什么,以及如何解决原系统中嵌入osgi框架时的包冲突问题对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

本文目录

如何解决原系统中嵌入osgi框架时的包冲突问题

选了felix的osgi容器并在原系统启动时配置并调用了framework的start。既在原系统中嵌入了osgi。这时若原系统中存在log4j包,且在系统启动后导入新的bundle中也有log4j包时会爆如下错误信息:log4j:ERROR A "org.apache.log4j.xml.DOMConfigurator" object is not assignable to a "org.apache.log4j.spi.Configurator" variable.log4j:ERROR The class "org.apache.log4j.spi.Configurator" was loaded bylog4j:ERROR whereas object of typelog4j:ERROR "org.apache.log4j.xml.DOMConfigurator" was loaded by .log4j:ERROR Could not instantiate configurator .log4j:WARN No appenders could be found for logger (testosgi2.Activator).log4j:WARN Please initialize the log4j system properly.感觉出错的原因是因为加载的classloader不同造成的冲突,org.apache.log4j.spi.Configurator是由org.apache.felix.framework.BundleWiringImpl加载的,而org.apache.log4j.xml.DOMConfigurator是由sun.misc.Launcher$AppClassLoader(原系统)加载的。最后两个WARN则表示找不到配置文件,(原系统能打印日志,bundle中却不能)。

如何把osgi工程改造为普通java工程

如何把osgi工程改造为普通java工程1) 在Eclipse中,点击“File-》New-》Project”菜单,您将会看到新项目创建对话框;2) 在新项目对话框中,选择“Plug-inProject(插件项目)”并点击“Next(下一步)”按钮,您将看到插件项目对话框;3) 在插件项目对话框中,请键入下列值:Project Name(项目名称):com.javaworld.sample.HelloWorldTarget Platform(目标平台):an OSGiFramework-》Standard (OSGi框架-》标准)4) 对其它的要求输入值采用缺省值,并点击“Next(下一步)”按钮,您将会看到插件上下文对话框;5) 在插件上下文对话框中,请选择缺省值并点击“Next(下一步)”按钮;6) 在模板对话框中,请选择“Hello OSGiBundle(你好,OSGi包)”模板,然后点击“Finish(完成)”按钮完成该项目。

部署在osgi框架中的bundle如何让它在启动的时候不启动,而是通过我的程序控制它启动

可以在config.ini中设置要加载的bundle时不要为那两个bundle增加:start,不让其自动启动,在第三个bundle的Activator.start中获取到这两个要启动的bundle,然后执行bundle.start方法进行启动。要注意osgi会缓存上次运行中bundle的状态,在下次启动时自动恢复,所以最好在启动前有清理缓存的操作,或者在第三个bundle的Activator.start中检测先那两个bundle的状态,如果已经是start了就先stop。

osgi bundle是线程吗

 前言:我相信做基于OSGI框架开发的朋友,对于OSGI的基本单元Bundle应该并不陌生,平时的开发中,做得最多事情就是bundle的开发和打包了,打包其实属于蛮重要的一个过程,为什么说他重要呢,其实打包的过程就是一个理清bundle依赖关系的过程,在对OSGI的学习和使用过程中,个人觉得最令人头痛的就是bundle之间的依赖关系,而且我到现在为止还没有找到一种比较好的工具能够很好的管理OSGI环境中的各个bundle的依赖关系。不过现在公司也有开始考虑做一些类似phpadmin,mysqladmin这样的基于web的管理工具来对bundle进行统一管理,在这之前,如何解决依赖关系,如何将bundle正确的打包出来并进行部署成了OSGI开发中的一个主要问题,而这篇文章中,我主要介绍目前我自己用过得几种打包方式,总结下经验,如果大家有更好的方法或者有不清楚的地方也可以提出来一起讨论~  第一种方法就是直接通过eclipse提供的export功能,来直接导出一个一个插件工程,这个过程,相信大家已经用的很熟悉了,直接eclipse给你的提示一步步来就可以了。  这里我只想稍微提几个注意的问题,首先是在打包的时候注意把必要的资源文件给勾选上,像我有时就忘记勾选上一些OSGI service的配置文件,而导致service不能发布或者获取。其次,检查好你的项目自描述文件MANIFAST.MF里面的OSGI相关的配置信息是否都已经写正确,该export和该import的包是否写对,个人觉得OSGI最让人头疼的就是解决bundle之间的依赖关系,有时候OSGI环境一大,依赖关系变得复杂,导出包,引用包常常会容易混淆,所以对OSGI环境中的组件的依赖进行统一管理和限定,可以使bundle的依赖更加清晰,环境也易于管理,降低OSGI开发复杂度。最后,有时候在导出包的时候会碰到一些问题,比如bundle之间循环调用,多半还是由于Bundle之间的依赖发生了冲突的关系,检查一下是否多个bundle是否导出了相同包,bundle的引入包是否正确等等。

使用osgi框架,修改java文件后为什么不好使

使用osgi框架,修改java文件后为什么不好使1、当然是先看Bundle名称了解这个插件的主要作用2、看元文件文件MANIFEST.MF查看该bundle的引用和暴露的接口3、查看有没有集成其他框架 如:springDM applicationContext.xml4、查看Activator.java 找到入口 逐步分析

文章分享结束,osgi框架是什么和如何解决原系统中嵌入osgi框架时的包冲突问题的答案你都知道了吗?欢迎再次光临本站哦!

osgi框架是什么(如何解决原系统中嵌入osgi框架时的包冲突问题)

本文编辑:admin

更多文章:


hyperx(HyperX新推出的QuadCast麦克风,有着怎样的特点)

hyperx(HyperX新推出的QuadCast麦克风,有着怎样的特点)

本文目录HyperX新推出的QuadCast麦克风,有着怎样的特点金士顿hyperx fury 与金士顿hyperx 有什么不同HyperX新推出的QuadCast麦克风,有着怎样的特点随着内容创作的蓬勃发展,此前专为游戏玩家打造麦克风等周

2024年7月23日 11:38

stumbled(关于stumbled的词组)

stumbled(关于stumbled的词组)

大家好,关于stumbled很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于关于stumbled的词组的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录关

2024年7月27日 02:42

sqlserver2005服务无法启动(sqlserver2005服务无法启动,有没有高手遇到过)

sqlserver2005服务无法启动(sqlserver2005服务无法启动,有没有高手遇到过)

本文目录sqlserver2005服务无法启动,有没有高手遇到过sql server 2005 无法启动sqlserver2005服务无法启动,有没有高手遇到过SQL Server 2005早就淘汰了,建议更新到2014版本,你这个是无法运

2024年7月19日 00:39

contained是什么意思(为什么要把pressed改成contained)

contained是什么意思(为什么要把pressed改成contained)

本文目录为什么要把pressed改成containedcontain与include的区别self-contained是什么意思contain to的意思为什么要把pressed改成contained您好,has been pressed

2024年5月20日 21:50

protocolcodes是什么意思(Transmission Control Protocol/Internet Protocol的发展目标)

protocolcodes是什么意思(Transmission Control Protocol/Internet Protocol的发展目标)

本文目录Transmission Control Protocol/Internet Protocol的发展目标code的翻译是:什么意思Transmission Control Protocol/Internet Protocol的发展目

2024年7月15日 22:03

draft wind(wind 作动词,蜿蜒,英式音标、怎么写请问)

draft wind(wind 作动词,蜿蜒,英式音标、怎么写请问)

本文目录wind 作动词,蜿蜒,英式音标、怎么写请问draft wind的意思“Draft is 2度+/-0.25度”是什么意思wind 作动词,蜿蜒,英式音标、怎么写请问adj.过去式:wound; winded; 过去分词:w

2024年5月21日 06:18

constantly读音(constantly可以放最后吗)

constantly读音(constantly可以放最后吗)

“constantly读音”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看constantly读音(constantly可以放最后吗)!本文目录constantly可以放最后吗精益求精的意思和拼音constantly是什么意

2024年8月23日 13:30

powerpoint中下列关于表格的说法错误的是(几道Excel,PPT题目请教各位高手!)

powerpoint中下列关于表格的说法错误的是(几道Excel,PPT题目请教各位高手!)

本文目录几道Excel,PPT题目请教各位高手!在PowerPoint中,关于在幻灯片中插入图表的说法中错误的是计算机的几个题,请高手指点Powerpoint中,下列有关表格的说法错误的是 A要向幻灯片中插入表格,需切换到普通视图 B要向幻

2024年5月22日 09:29

数据库设计说明书评审意见怎么写(论文评审意见怎么写)

数据库设计说明书评审意见怎么写(论文评审意见怎么写)

大家好,今天小编来为大家解答以下的问题,关于数据库设计说明书评审意见怎么写,论文评审意见怎么写这个很多人还不知道,现在让我们一起来看看吧!本文目录论文评审意见怎么写设计说明书怎么写设计说明怎么写,是什么格式的,都要写些什么呢项目评审意见怎么

2024年7月15日 11:34

小学生编程教学视频(小学生计算机编程学习)

小学生编程教学视频(小学生计算机编程学习)

本文目录小学生计算机编程学习0基础学习编程,求视频在教程.小学生计算机编程学习可以可以,爱学习的好孩子。编程入门首选C语言C语言入门书谭浩强的C程序设计进阶书c primer plusC语言学好了,其他语言就好入门了,接下来可以选择两个方向

2024年6月27日 02:03

js fetch用法(js fetch函数怎么鎐ookie,并且下次请求时带 cookie 访问)

js fetch用法(js fetch函数怎么鎐ookie,并且下次请求时带 cookie 访问)

本文目录js fetch函数怎么鎐ookie,并且下次请求时带 cookie 访问js怎么使用tp发过来的数组react.js fetch请求数据怎么渲染js添加到桌面fetchJS上一句运行完成后再运行下一句(JS暂停数秒)js fetc

2024年7月20日 22:23

drop table可以恢复吗(drop table可以还原吗)

drop table可以恢复吗(drop table可以还原吗)

大家好,今天小编来为大家解答以下的问题,关于drop table可以恢复吗,drop table可以还原吗这个很多人还不知道,现在让我们一起来看看吧!本文目录drop table可以还原吗MySQL误删数据后切勿跑路mysql 中 drop

2024年9月8日 02:35

怎么用navicat创建数据库(如何通过navicat创建数据库和导入数据库)

怎么用navicat创建数据库(如何通过navicat创建数据库和导入数据库)

本篇文章给大家谈谈怎么用navicat创建数据库,以及如何通过navicat创建数据库和导入数据库对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本

2024年7月30日 17:50

apache安装目录在哪(如何察看Apache的安装目录)

apache安装目录在哪(如何察看Apache的安装目录)

大家好,如果您还对apache安装目录在哪不太了解,没有关系,今天就由本站为大家分享apache安装目录在哪的知识,包括如何察看Apache的安装目录的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录如何察看Apac

2024年7月1日 08:55

imtoken是什么意思(imtoken.net是什么)

imtoken是什么意思(imtoken.net是什么)

本文目录imtoken.net是什么想知道imtoken是什么imtoken宽带是什么意思imtoken.net是什么imToken 是一款颇具影响力的移动端轻钱包。旨在为区块链领域的用户提供安全放心、简单好用、功能强大的数字资产管理工具。

2024年7月15日 22:46

cancelled怎么读(cancelled是什么意思)

cancelled怎么读(cancelled是什么意思)

本文目录cancelled是什么意思cancel的过去式是什么Show cancelled!的汉语是什么cancel的过去时态是canceled还是cancelledcancelled怎么读cancelled是什么意思cancelled取消

2024年4月10日 18:25

济南市java编程培训班(济南有哪些java培训机构)

济南市java编程培训班(济南有哪些java培训机构)

“济南市java编程培训班”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看济南市java编程培训班(济南有哪些java培训机构)!本文目录济南有哪些java培训机构济南易途java培训怎么样学费多少济南java培训机构培训j

2024年7月3日 07:10

单片机用到c语言哪些内容(单片机的C语言的目录)

单片机用到c语言哪些内容(单片机的C语言的目录)

本文目录单片机的C语言的目录单片机问题 单片机的硬件 在c语言里面都怎么表示 c语言都通过哪些方式 控制这些硬件单片机常用的C语言程序主要是STC89C52RC单片机c语言头文件里面可以写哪些内容,详细点 谢谢单片机的C语言的目录第1章 单

2024年7月1日 08:31

intel裁员赔偿(裁员公司怎么赔偿)

intel裁员赔偿(裁员公司怎么赔偿)

各位老铁们好,相信很多人对intel裁员赔偿都不是特别的了解,因此呢,今天就来为大家分享下关于intel裁员赔偿以及裁员公司怎么赔偿的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录裁员公司怎么赔偿裁员赔偿标准英特

2024年8月24日 08:51

constraint在数据库什么意思(数据库中的“约束”是什么意思)

constraint在数据库什么意思(数据库中的“约束”是什么意思)

本文目录数据库中的“约束”是什么意思数据库中 constraint 是什么数据库中的“约束”是什么意思如果给表中的某个字段添加了default约束,当向表中插入记录数据时,该字段如果不指定值,则系统自动填充default指定的值。数据库中

2024年3月25日 03:20

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1731
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1156
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1152
标签列表

热门搜索