首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

初识OSGI

但是在解决插件定制化这块,相对来说还是不太熟悉,然后OSGI进入眼帘了。 OSGI 简介 OSGI 是 Open Service Gateway Initiative(开发服务网关协议)。...基于这个框架定义了大量的OSGi服务:日志、配置管理、偏好,HTTP(运行servlet)、XML分析、设备访问、软件包管理、许可管理、星级、用户管理、IO连接、连线管理、Jini和UPnP。...框架本身非常紧凑,你只需要3个包加一个shell就可以运行了,无论是开发还是Debug都非常简便。除了Felix,还有两个项目是和OSGi相关的。...如果显示如上消息,恭喜你,可以点击Run启动OSGI console 啦!!! OSGI Console 启动 ? IDEA 版本 IDEA也带有OSGI 开发工具包,let's do it....运行(ss 为查看OSGI运行状态命令) ? Eclipse与IDEA开发OSGI,主要是manifast文件的生成过程存在比较大的差异。

1.1K20
您找到你想要的搜索结果了吗?
是的
没有找到

OSGI开发web应用

配置运行环境,选择Run->Run Configuration,new一个环境 ?...重新运行,如果没有出现异常,则表示运行成功。 在osgi窗口输入ss,会看到如下结果 ? 打开浏览器输入http://localhost:8080,得到结果如下: ?...在左侧的包浏览面板中可以看到OSGi工程的结构,“Plug-in Dependencies”下是OSGi插件运行需要的组件,src目录下是自动生成的源代码,simplewebosgi.Activator...右边是可视化的配置管 理器,在这里可以定义插件,配置插件运行所依赖的组件及需要导入的包,运行时环境,编译构建配置等。...现在虽然HTML页面文件有了,包也配置好了,但是还不能通过HTTP访问相应的页面,如果现在测试运行访问http://localhost:8080服务,浏览器会提示找不到页面,我们需要将页面注册到OSGi

1.6K40

OSGi 基本原理

OSGi的主要职责就是为了让开发者能够创建动态化、模块化的Java系统。 OSGi 框架 OSGi框架从概念上可以分为三层:模块层、生命周期层和服务层。...Module Layer:模块层主要涉及包及共享的代码; Lifecycle Layer:生命周期层主要涉及Bundle的运行时生命周期管理; Service Layer:服务层主要涉及模块之间的交互和通信...bundle 是以 jar 包形式存在的一个模块化物理单元,里面包含了代码,资源文件和元数据(metadata),并且jar包的物理边界也同时是运行时逻辑模块的封装边界。 ?...而bundle则不是这样,Bundle只有在被安装(install)到一个OSGi框架的运行实例中才能用起来。...参考资料 OSGi入门篇:模块层 OSGi入门篇:生命周期层 OSGi入门篇:服务层 OSGi原理与最佳实践

2.7K90

模块化服务规范——OSGI

基于这个框架定义了大量的OSGi服务:日志、配置管理、偏好,HTTP(运行servlet)、XML分析、设备访问、软件包管理、许可管理、星级、用户管理、IO连接、连线管理、Jini和 UPnP。...API中还定义了运行远程下载管理政策的生命周期管理。服务注册允许bundles去检测新服务和取消的服务,然后相应配合。 OSGi原先关注于服务网关,其实可用于多个方面。...2003年Eclipse选择OSGi作为其插件的底层运行时架构。Equinox project对该理念进行了实验,2004年6月在Eclipse3 R3中发布。...运行期,如果这些第三方Jar包不存在,或者命名存在差异,或者提供了不同JAR包版本,则会出现各种不同结果。Java SE/Java EE平台没有细化这方面的任何内容。...OSGI的优缺点 a) 您可以在不重启容器的情况下,动态地安装、卸载、启动和停止您的应用程序中的不同模块; b) 对于您应用程序中的某一特定模块,容器可以同时运行该模块的多个版本; c) OSGi为开发嵌入式应用

1.5K30

Poc之后,我选择放弃OSGI

Poc之后,我选择放弃OSGI TIPS: 如贵司允许重构老系统或者允许使用OSGI的第三方框架改造所带来的投入成本,并且评估之后ROI乐观,那么还是可以使用的。...Runtime Version 以下问题全部基于Equinox框架 & 使用BluePrint 整合Spring框架 OSGI org.eclipse.osgi 3.15.0v20190830-...spring3以后,好像就没有人维护osgi的版jar包了,想要使用更高版本,只能自己生成bundle....基础Spring Bean注入通过xml方式已经成功,但是目前的bundle缺失较多,最重要的为jdbc & transaction,spring 在3.2之后升级为spring-tx,而且不提供osgi...暴露rest service 利用,osgi自带的HttpService服务,再通过org.eclipse.equinox.servletbridge.BridgeServlet把服务桥接出去 关于现有的

1.3K20

你们也在用osgi吗?

OSGI就可以解决上面的问题,应用程序可以像搭积木一样完成搭建,例如对于一个正在运行的系统,压根日志服务,但目前系统中没有提供日志服务的模块,那么可以直接开发出相应的日志服务模块,然后动态的加载到系统中...osgi中的Bundle bundle其中有包的意思,这个是osgi中比较核心的一个概念,也就是说我们控制osgi就是通过bundle来进行控制的。...•ACTIVE — bundle已经启动完毕,正在运行中。 •STOPPING — 正在停止bundle。调用了bundle激活器的stop方法,而且还没有从方法中返回。...运行,如果控制台中出现osgi>并且没有提示错误信息,说明配置成功。 然后输入ss,则可出现如下界面: 至此环境搭建完毕。 实例osgi 创建一个Plug-in project ?...运行应用,分别输入start 1、ss、stop 1、ss 得到如下结果,则证明运行成功 ?

1.7K40

灵活的类加载器OSGI

以上这些静态的模块化特性原本也是OSGi的核心需求之一,不过它和后来出现的Java的模块化系统互相重叠了,所以OSGi现在着重向动态模块化系统的方向发展。...说人话就是OSGI框架,可以对需要加载的类进行精细化的控制,形成一个网状结构,而不是之前的树形的结构。...在今天,通常引入OSGi的主要理由 是基于OSGi架构的程序很可能(只是很可能,并不是一定会,需要考虑热插拔后的内存管理、上下文状态维护问题等复杂因素)会实现模块级的热插拔功能,当程序升级更新或调试除错时...OSGi之所以能有上述诱人的特点,必须要归功于它灵活的类加载器架构。OSGi的Bundle类加载器 之间只有规则,没有固定的委派关系。...加载方式从简单的树形变成平面网状 经典类加载结构 OGSI网状导入 在OSGi中,加载器之间的关系不再是双亲委派模型的树形结构,而是已经进一步发展成一种更为复杂的、运行时才能确定的网状结构。

60530

Springboot Application 集成 OSGI 框架开发

并分别定义出了 java.lang.Class 实例来表示这个类,对于 JVM 来说,它们是两个不同的实例对象,但它们确实是同一份字节码文件,如果试图将这个 Class 实例生成具体的对象进行转换时,就会抛运行时异常...java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.Class OSGI 类加载器 OSGI 类加载器并不遵循...图 1.OSGI 类加载器 ? image OSGI 框架根据 Bundle 的 MANIFEST.MF 文件中描述的数据信息进行解析处理 Bundle 间的依赖关系。...Equinox OSGI ServletBridge 实现原理及源码解析 BridgeServlet 与 OSGI 容器 Equinox 提供了 servletbridge.jar 将 OSGI framework...Spring boot 应用中嵌入 OSGI 开发和 Spring boot 应用如何与 OSGI 插件之间进行相互调用。

1.2K20
领券