【OSGI】非Eclipse下构建OSGI运行环境

简介:

搭建非Eclipse下构建OSGI运行环境

由于工作需要,学习了OSGI。之前在Eclipse上搭建过OSGI模块化开发平台,但是这种启动plug-in项目的方法最终交付用户的时候不能让用户通过Eclipse来启动项目,所以我们要搭建一个非Eclipse下构建OSGI运行环境。

 

首先我写这篇文章的时间是201633日,我使用的编译器是Spring Tool Suite(Eclipse几乎一模一样,只是添加了一些支持Spring的插件),我的JDK版本是1.7OSGIjar版本是org.eclipse.osgi_3.10.1.v20140909-1633.jar(也就是20149月的版本)

 

在发布工程之前,我们要把我们工程需要的所有bundle全部打包成jar包。具体操作就是鼠标右键点击工程,选择Export,之后选择:Deployable plug-ins and fragments:

 

接下来选择需要导出的bundle项目和最终导出的目录:

 

然后我们点击”Finish”完成操作。

 

然后我们就会看到我们的工程在D盘的osgi_demo下被导出来了(默认导出到系统自创plugins文件夹下):

 

 

之后我们在D盘创建一个名为“osgi_platform”的文件夹,用于创建OSGI运行环境。

 

我们的以上准备工作做好之后,我们开始创建OSGI运行环境。首先我们从我们eclipse软件所在的根目录中找到plugins文件夹:

 

然后在该文件夹下找到“org.eclipse.osgi_XXX.jar”的jar:

 

(我的版本是org.eclipse.osgi_3.10.1.v20140909-1633.jar,你们按照自己的版本拷贝。)

 

我们把这个jar包拷贝到我们之前创建好的文件夹“osgi_platform”下,更名为“equinox.jar”,然后新建一个记事本,在其中写下如下启动信息:

java -Dosgi.noShutdown=true -Dorg.osgi.service.http.port=8010 -jar equinox.jar -console

(上面是osgi的启动信息,一般默认是80端口,我的冲突了,所以改为8010端口)

然后将记事本更名为“run.bat”(格式由txt改为bat),这时候就变成了一个启动文件了。

目前文件夹是这个情况:

 

 

然后我们在文件夹“osgi_platform”下继续添加两个文件夹,分别是“configuration”和“bundles”。

 

因为我开发的是基于ServletWeb项目,我要引入除了osgi本身之外的web所需要的插件包,所以我们在bundle下放置如下jar(其中没有画红框的是我自己开发的工程bundle,大家按照自己的需要放置,剩下的都是Http项目运行系统必须的jar)

 

 

以上jar包都可以在我们eclipse软件所在的根目录plugins文件夹中找到,如果您没有,那就在http://cn.jarfire.org/search?q=万能jar包搜索引擎中寻找。

 

剩下的就是处理configuration文件夹了,我们在configuration下创建“config.ini”文件,然后在里面填写如下信息:

osgi.noShutdown=true
osgi.bundles=reference\:file\:bundles/javax.servlet_3.0.0.v201112011016.jar@start,reference\:file\:bundles/org.apache.commons.logging_1.0.4.v201101211617.jar@start,reference\:file\:bundles/org.eclipse.osgi.services_3.4.0.v20140312-2051.jar@start,reference\:file\:bundles/org.eclipse.jetty.continuation_8.1.14.v20131031.jar@start,reference\:file\:bundles/org.eclipse.jetty.http_8.1.14.v20131031.jar@start,reference\:file\:bundles/org.eclipse.jetty.io_8.1.14.v20131031.jar@start,reference\:file\:bundles/org.eclipse.jetty.security_8.1.14.v20131031.jar@start,reference\:file\:bundles/org.eclipse.jetty.server_8.1.14.v20131031.jar@start,reference\:file\:bundles/org.eclipse.jetty.servlet_8.1.14.v20131031.jar@start,reference\:file\:bundles/org.eclipse.jetty.util_8.1.14.v20131031.jar@start,reference\:file\:bundles/org.eclipse.equinox.http.servlet_1.1.500.v20140318-1755.jar@start,reference\:file\:bundles/org.eclipse.equinox.http.jetty_3.0.200.v20131021-1843.jar@start,reference\:file\:bundles/org.apache.felix.gogo.runtime_0.10.0.v201209301036.jar@start,reference\:file\:bundles/org.apache.felix.gogo.shell_0.10.0.v201212101605.jar@start,reference\:file\:bundles/DictQueryWeb_1.0.0.jar@start,reference\:file\:bundles/LocalDictQuery_1.0.0.201603021501.jar@start,reference\:file\:bundles/RemoteDictQuery_1.0.0.201603021501.jar@start,reference\:file\:bundles/DictQuery_1.0.0.201603021503.jar@start,reference\:file\:bundles/org.eclipse.equinox.console_1.1.0.v20140131-1639.jar@start
osgi.bundles.defaultStartLevel=4

(里面配置的都是我们bundle文件夹中的jar包,为的是一次性Install所有的jar包,而不需要我们一个一个在CMD控制台黑屏里一个一个安装jar)

 

然后我们回到最初run.bat所在的目录,双击run.bat,如果出现”osgi>”信息,说明运行环境配置成功:

 

 

(后面的提示汉字是我自己的Web工程中的,纯净环境下是没有的)

然后我们输入”ss”指令,可以看到我们被激活的所有bundle:


 

然后我们就可以访问我们自己的应用了。

我的是基于Servletweb小例子,是网上找的模拟电子词典的Web系统,我们保持run.bat的开启状态,打开浏览器,就可以访问我们发布在osgi上的应用了:


至此,我们的搭建非Eclipse下构建OSGI运行环境结束。

转载请注明出处:http://blog.csdn.net/acmman/article/details/50790534

相关文章
|
6月前
|
Java 网络安全 Maven
16Maven - maven构建ssh项目(Eclipse版本)
16Maven - maven构建ssh项目(Eclipse版本)
44 0
|
6月前
|
Java 应用服务中间件 Maven
09Maven - 构建maven工程(Eclipse)
09Maven - 构建maven工程(Eclipse)
25 0
|
11月前
|
SQL Java 应用服务中间件
【JavaWeb】手把手教你Eclipse、IDEA集成Tomcat构建Web应用(三)
【JavaWeb】手把手教你Eclipse、IDEA集成Tomcat构建Web应用(三)
|
11月前
|
应用服务中间件 Android开发
【JavaWeb】手把手教你Eclipse、IDEA集成Tomcat构建Web应用(二)
【JavaWeb】手把手教你Eclipse、IDEA集成Tomcat构建Web应用(二)
|
11月前
|
XML IDE Java
【JavaWeb】手把手教你Eclipse、IDEA集成Tomcat构建Web应用(一)
【JavaWeb】手把手教你Eclipse、IDEA集成Tomcat构建Web应用(一)
|
JavaScript 前端开发 Android开发
eclipse如何优化构建的速度(Building)
那么,要怎么样优化一下,速度就可以更快了呢?
378 0
|
XML Java Android开发
SpringBoot入门:使用IDEA和Eclipse构建第一个SpringBoot项目
Spring Boot是一个简化Spring开发的框架,用来监护spring应用开发,约定大于配置,去繁就简,just run 就能创建一个独立的,产品级的应用。我们在使用Spring Boot时只需要配置相应的Spring Boot就可以用所有的Spring组件,简单的说,spring boot就是整合了很多优秀的框架,不用我们自己手动的去写一堆xml配置然后进行配置。所以springboot在java开发中也变得越来越重要,这里总结一下如何使用IDEA和Eclipse创建一个简单的springboot项目。
383 0
SpringBoot入门:使用IDEA和Eclipse构建第一个SpringBoot项目
|
Java Apache Maven
maven的安装和eclipse的配置以及构建mahout基本项目
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq1010885678/article/details/45175325 maven介绍在此略过 下载地址: 点击打开链接 windows下载xxx-bin.
1235 0
|
XML JSON Java
Eclipse 使用Maven 构建Web项目的最佳方式,我认为没有之一(3)
Eclipse 使用Maven 构建Web项目的最佳方式,我认为没有之一
164 0
Eclipse 使用Maven 构建Web项目的最佳方式,我认为没有之一(3)
|
Java Maven Android开发
Eclipse 使用Maven 构建Web项目的最佳方式,我认为没有之一(2)
Eclipse 使用Maven 构建Web项目的最佳方式,我认为没有之一
112 0
Eclipse 使用Maven 构建Web项目的最佳方式,我认为没有之一(2)