OSGi环境搭建中常见问题解决思路

 

OSGi环境搭建中常见问题解决思路

OSGi环境搭建中常见问题解决思路

 

本篇笔记主要着重学习OSGi框架运用中的环境搭建,这里选择的是Equinox框架作为学习目标。讲解环境搭建中常见的问题和解决思路。

1.1 Equinox 框架

1.1.1 环境的准备

首先下载EquinoxEquinoxEclipse工程,Eclipse3.1之后的版本都是通过它来启动的,所以,Eclipse3.1之后的版本自身就包含了Equinox。下载一个Eclipse 3.1之后的版本。以下是环境准备清单:

(1)Eclipse: eclipse-jee-mars-2-win32-x86_64;

(2)JDK:jdk1.8.0_66;

 

1.1.2 检查环境

1.运行eclipse.exe,启动Eclipse,配置工作空间的编码为UTF-8,配置工作空间的JDK。接下来打开Run Configurations对话框(如图1-1

 

1-1 运行配置菜单

2.创建OSGi Framework类型的新的运行配置,如图1-2所示:

 

1-2 创建运行配置

3.接下来将会显示所有的Bundles,点击Deselect All 按钮取消选择所有的Bundles,并在搜索框中输入osgi检索osgibundles。如图1-3所示:

 

1-3 选择osgiBundles

4.选择列表中的org.eclipse.osgi bundle,点击Apply,然后点击Run按钮,等待console控制台输出信息。如图1-4所示:

 

1-4 控制台信息

然并卵,带着期待的心情,得到了蛋疼的结果: Bundle Exception !,某宝的技术大咖的教程,呵呵!Could not find bundle:org.eclipse.equinox.console

 

1.2 解决OSGi启动报错

很明显的一个异常提示,没有找到org.eclipse.equinox.console这个Bundle,接下来就再把这个Bundle添加到运行环境中去。点击Run Configurations,点击刚才创建的OSGi Framework 运行配置,在输入框中输入org.eclipse.equinox.console,并勾选上,再次点击运行,如图1-5所示,运行结果如图1-6所示。

 

1-5 添加org.eclipse.equinox.console Bundle

 

1-6 控制台输入信息

依旧是没完没了的错误提示,通过控制台输出的信息可以知道,找不到依赖的Bundle所导致的这个错误。 Unresolved requirement:Import-Package:org.apache.felix.service.command,这个正是org.eclipse.equinox.console所依赖的Bundle,接下来就是继续添加所需的Bundle

这里就不再累赘的记录接下来的排查过程,直接给出接下来需要的bundle清单。

1.org.apache.felix.gogo.command,

2.org.apache.felix.gogo.runtime;

3.org.apache.felix.gogo.shell;

配置完成后再次点击Run按钮进行,等待控制台输出,如果看到控制台输出osgi >则证明osgi的启动环境已经配置完成,接下来在控制台中输入“ss”来查看运行环境中各个Bundle的运行状态,如图1.7所示。

 

1-7 OSGi Framework 运行信息

1.3 学习总结

善待BUG信息,从中会学到很多东西。不要一味的迷信技术大咖,软件技术每天都在更新,在学习过程中对于技术教程,只能作为一种学习的参考,不可以一股脑的照抄照拿。遇到问题也别一股脑的把错误信息往某度的搜索框中贴,那样没有太多的成长空间。多多思考如何解决问题,而不是做一个技术的搬运工。善待错误,错误也会给与你更多的恩惠,对于OSGi的初学者而言,不可拿着教程就开始跟着教程做,那样只会得到更多的“然并卵”,先对整个技术有一个大体的认识,再下手开始写东西,如果没有思路的写代码,那还不如回家睡大觉。[个人牢骚,不喜勿喷]