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

一、搭建Apache Felix运行环境

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rynIjuaZ-1612233052581)(/home/lxj/.config/Typora/typora-user-images/1612230294043.png)]

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!!");}}123456789101112131415161718192021222324

该类用于控制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命令,控制台输出内容如下:

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!!");}}

控制台输出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

2.OSGI企业应用开发-Eclipse中搭建Felix运行环境相关推荐

  1. OSGI企业应用开发(二)Eclipse中搭建Felix运行环境

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. python绘制雷达图代码实例-使用python绘制温度变化雷达图
  2. python中的__str__ __name__ 和__call__方法
  3. JAVA垃圾回收的几点知识
  4. TWITTER背后的开源技术
  5. Play框架的用户验证。
  6. 行添加DataGridView导出Excel的数据表格
  7. 【微软官方文档】应用程序错误处理
  8. [JS调用]automation服务器不能创建对象
  9. 计算机网络专业认识和理解,计算机网络专业认识.docx
  10. Convert Nero's nrg file to iso file
  11. 计算机如何把应用储存进u盘,怎样把word中的内容保存进u盘 怎样把word文档放到u盘里?...
  12. java workbook.close_找不到符号Workbook.close()
  13. GPS同步时钟(NTP时间服务器)网口物理隔离的好处
  14. 全局热键给截图自动加水印并win10系统通知
  15. 搜索计算机文件夹的记录怎么删除,怎样删除电脑最近打开的文件或文件夹?
  16. Fetch —— 中止尚未完成的接口请求
  17. 计算机专业进铁路工资待遇,本科生刚进铁路局工资待遇汇总,仅供参考!
  18. 微信企业号开发之 企业号人员身份认证与开发
  19. 牛客 最小互质数(筛法求解)
  20. 「Matlab」“矩阵对矩阵求导的方法”讲解

热门文章

  1. 使用python3开发趴小说的小工具
  2. Vue+element图片上传
  3. 微信公众号支付——预支付订单
  4. MySQL查询之内存临时表
  5. 用Python求解拿鸡蛋问题
  6. 最大流 紧急疏散evacuate
  7. 参数估计的均方误差(MSE),偏置(Bias)与方差(Variance)分解,无偏估计
  8. Glide 的 transformation
  9. php session fixation,Session Fixation 攻防实战(图)
  10. Selenium实践-拉钩网招聘信息