上篇文章介绍了什么是OSGI以及使用OSGI构建应用的优点,接着介绍了两款常用的OSGI实现,分别为Apache Felix和Equinox,接下来开始介绍如何在Eclipse中使用Apache Felix和Equinox搭建OSGI运行环境。

一、搭建Apache Felix运行环境

上篇文章中介绍了Felix的下载与使用,本节我们在Eclipse中搭建Felix运行环境,并开发一个自己的Bundle,然后发布到Felix容器中,下载解压后的Felix框架文件结构如下:

felix-framework-5.6.1│  DEPENDENCIES│  LICENSE│  LICENSE.kxml2│  NOTICE│├─bin│      felix.jar│├─bundle│      org.apache.felix.bundlerepository-2.0.8.jar│      org.apache.felix.gogo.command-0.16.0.jar│      org.apache.felix.gogo.runtime-0.16.2.jar│      org.apache.felix.gogo.shell-0.10.0.jar│├─conf│      config.properties│└─doc│ ....

bin/felix.jar文件为Felix最核心的部分,包括Felix框架的启动类,bundle目录下为Felix的核心Bundle,包括控制台命令,运行环境,远程Bundle资源等,conf/config.properties文件为Felix的配置信息,用于配置日志级别,Http服务端口号。了解了这些之后,接下来我们就开始在Ecilpse中搭建Felix的运行环境。
1、打开Eclipse,新建一个Java工程,名称为org.apache.felix.main。

2、在新建的Java工程中新建一个lib目录,接着把felix.jar拷贝到该目录下,然后將Felix框架中的bundle和conf目录拷贝到工程中。完成后项目结构如下图所示:

3、接下来將felix.jar添加到classpath中,操作很简单,在felix.jar上单击鼠标右键=>Build Path=>Add to Build Path。

4、接着单击Run=>Debug Configrations…菜单,在Java Application条目上单击右键new,配置如下图所示:

5、单击Debug按钮即可启动Felix框架,接着可以在控制台中输入lb命令查看所有运行的Bundle,如下图所示:

二、开发一个自己的Bundle

到此为止Felix运行环境已经搭建起来了,接下来我们可以开发一个自己的Bundle。
1、新建一个Plug-in Project,如下图所示:

如上图所示,工程名称为com.csdn.osgi.common,在Target Platform的an OSGI framewor选项,选择standard,单击Next按钮,进入如下界面:

2、继续单击Next按钮,进入如下界面,选择Hello OGSI Bundle,单击Finish按钮。

3、工程新建完毕后,项目结构如下图所示:

Eclipse向导为我们生成一个Activator,该类的内容如下:

package com.csdn.osgi.common;import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;public class Activator implements BundleActivator {/** (non-Javadoc)* @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)*/public void start(BundleContext context) throws Exception {System.out.println("Hello World!!");}/** (non-Javadoc)* @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)*/public void stop(BundleContext context) throws Exception {System.out.println("Goodbye World!!");}}

该类用于控制Bundle的生命周期,start方法会在Bundle启动时调用,而stop方法则会在Bundle卸载是调用。
4、接下来就是发布该Bundle,在com.csdn.osgi.common工程上单击右键=>Export,如下图所示:

5、单击Next按钮,选择导出路径,如下图所示:

6、將导出的jar包放到org.apache.felix.main工程的bundle目录下,Felix启动时即可自动加载该目录下的bundle。

7、重新运行Felix框架,输入lb命令,控制台输出内容如下:

Hello World!!
____________________________
Welcome to Apache Felix Gogog! lb
START LEVEL 1ID|State      |Level|Name0|Active     |    0|System Bundle (5.6.1)|5.6.11|Active     |    1|Apache Felix Bundle Repository (2.0.8)|2.0.82|Active     |    1|Apache Felix Gogo Command (0.16.0)|0.16.03|Active     |    1|Apache Felix Gogo Runtime (0.16.2)|0.16.24|Active     |    1|Apache Felix Gogo Shell (0.10.0)|0.10.05|Active     |    1|Common (1.0.0.201612172059)|1.0.0.201612172059
g! 

控制台输出Hello World!!,说明我们的自己开发的Bundle已经成功运行!实际项目中我们可以使用构建工具Ant来帮助我们完成这一操作,本节内容就介绍这么多,下节介绍Eclipse中搭建Equinox运行环境。
本文源码下载地址:
http://download.csdn.net/detail/rongbo_j/9714354

转载请注明本文地址:
http://blog.csdn.net/rongbo_j/article/details/53711964

转载于:https://www.cnblogs.com/lanzhi/p/6468193.html

OSGI企业应用开发(二)Eclipse中搭建Felix运行环境相关推荐

  1. Idea中搭建Resin运行环境(Mac)

    一.背景 idea中搭建Resin运行环境,可以在idea中通过点击Run按钮直接调试应用. 二.Resin下载地址 下载地址:https://caucho.com/products/resin/do ...

  2. Ubuntu使用日志2(在Eclipse中搭建C++交叉编译环境)

    Release用交叉编译:arm-none-linux-gnueabi-gcc.搭建步骤: 1).在Project->Properties->C/C++ Build->Setting ...

  3. MATLAB 中搭建MatConvNet运行环境(调用GPU运行)以及遇到的错误

    安装 MATLAB.VS.CUDA MatConvNet点击下载 我的环境: Windows 10 64bit MATLAB R2014b VS2015 CUDA9.2 1.编译 第一步: >& ...

  4. Windows 8 IIS中配置PHP运行环境的方法

    这篇文章主要介绍了如何在Windows 8中通过iis8配置php运行环境,需要的朋友可以参考下 在Windows 8 的IIS(8.0)中搭建PHP运行环境: 一:安装IIS服务器 1.进入控制面板 ...

  5. 在Eclipse中搭建Python开发环境之三新建python 提示django not found

    python 不是内部或外部命令 现在我假设你的python安装在C:\Python26目录下,设置环境变量方法如下: 方法一.我的电脑->属性->高级->环境变量->系统变量 ...

  6. eclipse中SSH三大框架环境搭建二

    通过上一篇博客我们可以轻松搭建strtus2的环境,接下来由我来继续介绍spring的环境搭建以及spring注入的简单使用 相关链接:eclipse中SSH三大k框架环境搭建<一> ec ...

  7. 在Eclipse中搭建Python开发环境

    在Eclipse中搭建Python开发环境 来自: http://hi.baidu.com/hqwfreefly/blog/item/2543181d0afd9604314e150e.html 前言 ...

  8. eclipse中如何安装php环境,Eclipse for PHP环境搭建运行测试全过程

    在eclipse上也可以搭建PHP运行环境,本文将带大家一起学习如何用eclipse搭建PHP环境,和小编一起来学习一下吧! 一.下载Eclipse PHP 编译器 登陆eclipse官网下载 Ecl ...

  9. Spring boot(6)---在Eclipse中搭建Spring boot 项目

    Spring boot入门:在Eclipse中搭建Spring boot 项目 Eclipse中的STS插件 打开Eclipse-Help-Eclipse Marketplace-popular 下载 ...

最新文章

  1. atomic与nonatomic,assign,copy与retain的定义和区别
  2. linux FreeImage安装编译
  3. cs231n 学习笔记(5)——神经网络part1:建立神经网络架构
  4. html语言闪烁特效代码,css3 文字闪烁特效代码
  5. 大数据之-Hadoop3.x_Yarn_公平调度器---大数据之hadoop3.x工作笔记0146
  6. 安装Oracle 11g 出现交换空间不够
  7. tuning 02 Diagnostic and Tuning Tools
  8. plsql使用很卡的情况
  9. x265中的lookahead
  10. 如何实现手机远程控制电源开关
  11. 安卓android+rom定制,移植,安卓Android ROM定制移植教程。.doc
  12. Spark删除redis千万级别set集合数据
  13. Altium Designer 18中的PCB Editor–Board Insight Modes
  14. 学术应用使用node-http-proxy集成谷歌学术
  15. SpringBoot 提示转换异常:java.lang.ClassCastException: com.*** cannot be cast to java.lang.String
  16. CSS 中最后一行中元素如何向左对齐
  17. 房地产楼盘三维地图带来的便利
  18. 联通短消息服务器域名,中国联通域名服务器地址
  19. JAVA开发与运维(web生产环境部署)
  20. sel2000服务器自动关闭,解决了SQL SERVER 2000自动停止的问题

热门文章

  1. Fragment提交transaction导致state loss异常
  2. DZX2无法读取会员短消息
  3. 磁盘加密软件TrueCrypt知识大全(二)之创建文件型加密卷
  4. Winform与Webform中的对话框
  5. Sql server Insert执行的秘密(下) 带外键的INSERT分析
  6. MonoRail学习笔记五:定制服务实现自定义功能
  7. 配置Tomcat和在Eclipse中创建Web工程
  8. Npm 5 package locks
  9. 中小企业对于云计算的3大误解
  10. 【TCP/IP协议 卷一:协议】第三章 IP:网际协议