`
killko
  • 浏览: 104720 次
  • 性别: Icon_minigender_1
  • 来自: 广州
博客专栏
Group-logo
Servicemix&Fu...
浏览量:0
社区版块
存档分类
最新评论
阅读更多
   有网友问我有没有osgi的demo,于是将前段时间给朋友的一个例子拿来整理了一下。
  
   首先,这个demo是在karaf下运行的,项目由三个bundle组成,会涉及自定义的console命令,服务的发布和引用。
  
   项目为maven项目,为方便构建,将三个bundle项目作为一个父项目下的三个子项目。项目经mvn package构建后,在三个子项目的target文件夹下分别生成了Calculator-1.0.jar、AddModule-1.0.jar、SubModule-1.0.jar三个bundle,这三个bundle分别为:
  
    1、Calculator bundle,负责处理console输入的命令;
    2、AddModule bundle,负责提供计算加法的服务;
    3、SubModule bundle,负责提供计算减法的服务;
   
    到http://karaf.apache.org下载karaf后,解压,将三个bundle复制到在<karaf-root>/deploy下,运行<karaf-root>/bin/karaf.bat(或karaf.sh)启动karaf,输入list,可以看到三个bundle状态均为ACTIVE,而且blueprint也是CREATE的状态。

    这时就可以输入
   
    karaf> calc:add 1 2
    1 + 2 = 3
    karaf> calc:sub 10 3
    10 - 3 = 7


可尝试停了AddModule或SubModule后,输入以上命令,看结果如何。
2
1
分享到:
评论

相关推荐

    osgi基础demo-搭建servlet

    在这个“osgi基础demo-搭建servlet”项目中,我们将探讨如何在OSGi环境中创建并运行一个简单的Servlet应用程序。 首先,我们需要理解OSGi的核心概念。OSGi基于服务导向架构,每个模块称为一个Bundle,每个Bundle...

    osgi基础demo

    &lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt; ; charset=UTF-8"&gt; &lt;title&gt;a test page &lt;body&gt;Hello, This is a test page! &lt;/html&gt;

    osgi数据库连接demo

    首先,C3P0是一个开源的JDBC连接池,它提供了一些额外的功能,如自动管理数据库连接、检测空闲连接以及自动回收等。在OSGi环境中,我们需要将C3P0的相关库(如com.mchange.v2.c3p0.jar)打包成一个bundle,然后在...

    osgi自定义控制台命令demo

    在OSGi环境中,自定义控制台命令是一个强大的特性,允许开发者扩展OSGi框架的功能,提供个性化的操作指令。本示例“osgi自定义控制台命令demo”将向我们展示如何创建和实现自己的控制台命令,以增强OSGi的交互性。 ...

    开发一个简单的 OSGi Web 应用实例

    ### 开发一个简单的 OSGi Web 应用实例 #### 一、项目概述 本教程旨在通过一个具体的示例来介绍如何使用OSGi框架开发一个简单的Web应用。这个示例应用能够计算两个数字的和或乘积,并展示了OSGi bundle的动态部署...

    osgi-ds对应的demo

    在标题“osgi-ds对应的demo”中,我们可以推测这是一个关于OSGi Declarative Services的示例项目。这个项目可能包含了两个部分:“1..1”和“1..n”,这可能代表了两种不同的服务关系或服务配置模式。"1..1"可能表示...

    osgi spring实例

    标题"OSGi Spring实例"表明这是一个关于如何在OSGi环境中集成和使用Spring框架的实际应用示例。这个实例可能包含了配置文件、源代码和其他必要的资源,使得开发者可以直接参考和使用。 描述中的"osgi集成spring的...

    osgi解决不同版本jar包冲突的demo

    本示例通过一个名为“myself”的工程,展示了如何利用OSGi来处理版本冲突。 在Java开发中,常常会遇到类加载器冲突,特别是当多个项目依赖于不同版本的相同库时。例如,一个项目可能依赖于库A的v1.0,而另一个项目...

    一个关于osgi的例子

    这个标题“一个关于osgi的例子”暗示我们将探讨如何使用OSGi进行模块化开发。 在描述中提到,压缩包包含两个文件夹:OsgiSrc和OsgiDemo。OsgiSrc很可能是包含源代码的文件夹,开发者可以查看和学习OSGi服务的实现...

    OSGI 服务端模式Demo [C/S架构]

    该Demo模拟了这样一个功能, 从OSGI命令行接收到一个命令: 服务名 参数1 参数2 就能将服务转发到对应的服务插件上去. 比如: AddService 12 34 这样就能将参数传递给AddService这样的服务, 并得到两个参数相加的结果

    OSGi到底给我们带来了什么[附PPT和Demo]

    标题“OSGi到底给我们带来了什么[附PPT和Demo]”表明,这个资源可能包含一个介绍OSGi的演示文稿(PPT)和实际操作示例(Demo),帮助读者理解OSGi的实际应用和优势。通常,PPT会通过视觉方式展示OSGi的关键概念和...

    基于OSGi和Spring开发Web应用的Demo

    同样,它可以作为一个OSGi服务暴露出来,由Spring管理其生命周期和依赖。 4. `com.zxn.example.web`:此包很可能包含了Web层的组件,比如Spring MVC的控制器(Controller),负责处理HTTP请求,调用业务逻辑层的...

    demo for osgi

    LocalDictQuery同样可能实现了DictQuery接口,提供了一种在同一个OSGi环境内的字典查询功能。 通过这些示例文件,我们可以深入理解OSGi如何处理服务的发布、查找和使用。每个服务都有其特定的上下文和功能,而OSGi...

    两个osgi的例子程序

    总之,这个压缩包和相关博客文章为我们提供了一个学习OSGi实战经验的机会,涵盖了从基础概念到具体实践的多个方面。通过研究源码和工具,我们可以深入理解OSGi如何实现模块化,以及如何利用这一技术来构建更灵活、更...

    osgi学习笔记(一)

    总结来说,OSGi提供了一个强大的模块化系统,通过服务导向的架构,使Java应用更加灵活和可维护。开发者通过掌握OSGi,能够构建更高效、可扩展的系统,同时也能更好地应对复杂的应用场景和持续变化的需求。如果你计划...

    把OSGI部署成一个可运行的例子

    本教程将详细讲解如何将OSGI部署为一个可运行的例子,帮助你了解其基本概念和操作流程。 一、OSGI基础 1. 模块化系统:OSGI的核心是模块化,每个模块称为一个Bundle,每个Bundle都包含类、资源和元数据,它们有...

    OSGI整合Spring、Mybatis、Spring MVC实现一个登录应用案例

    OSGI(Open Services Gateway Initiative)是一种模块化系统和Java服务框架,它允许应用程序以模块化的方式构建,每个模块称为一个Bundle。在这个案例中,我们将探讨如何整合OSGI、Spring、Mybatis以及Spring MVC来...

    OSGI 开发文档中文的

    5. **EnqiNX和OSGI的关系**:EnqiNX是一个基于OSGI的开源企业应用框架,它扩展了OSGI规范,提供了更高级的企业级功能,如安全管理、配置管理、事件管理和事务管理等。 6. **插件模块开发**:如何设计和实现OSGI插件...

Global site tag (gtag.js) - Google Analytics