您的位置:首页 > 编程语言 > Java开发

基于Eclipse Mars.2的OSGi环境搭建

2016-05-18 21:49 447 查看
OSGi的基本组件就是形形色色的bundle,在网上看了很多的资料,很多的博文里面介绍的仍然是基于比较老版本的OSGi bundle的环境搭建配置,现在就最新版本的具体环境的改变做一下的阐述。

1.最基本的环境配置

如果下载的Eclipse版本是Mars.2的话,你会发现里面的osgi bundle的版本是3.10.102,按照老的说法只需要这一个bundle就能启动最小的OSGi环境显然已经不行了,要正在启动起来还需要其他四个bundle,他们是org.apache.felix.gogo.command,org.apache.felix.gogo.shell,org.apache.felix.gogo.runtime,org.eclipse.equinox.console,四者缺一不可。

osgi> ss

"Framework is launched."

id State       Bundle

0 ACTIVE      org.eclipse.osgi_3.10.102.v20160118-1700

1 ACTIVE      org.apache.felix.gogo.command_0.10.0.v201209301215

2 ACTIVE      org.apache.felix.gogo.shell_0.10.0.v201212101605

3 ACTIVE      org.apache.felix.gogo.runtime_0.10.0.v201209301036

4 ACTIVE      org.eclipse.equinox.console_1.1.100.v20141023-1406

osgi>

2.Spring DM的环境设置(不含WEB)

Spring DM 下载地址:spring-osgi-2.0.0.M1-with-dependencies

需要的基础bundle 有:

osgi> ss

"Framework is launched."

id State       Bundle

0 ACTIVE      org.eclipse.osgi_3.10.102.v20160118-1700

1 ACTIVE      org.apache.felix.gogo.command_0.10.0.v201209301215

2 ACTIVE      org.apache.felix.gogo.runtime_0.10.0.v201209301036

3 ACTIVE      org.springframework.osgi.io_2.0.0.M1

4 ACTIVE      org.springframework.osgi.extender_2.0.0.M1

5 ACTIVE      org.apache.felix.gogo.shell_0.10.0.v201212101605

6 ACTIVE      org.springframework.osgi.core_2.0.0.M1

7 ACTIVE      org.eclipse.equinox.console_1.1.100.v20141023-1406

19 ACTIVE      org.apache.commons.logging_1.1.1.v201101211721

20 ACTIVE      org.springframework.beans_3.0.0.RC1

21 ACTIVE      com.springsource.org.aopalliance_1.0.0

24 ACTIVE      org.springframework.context.support_3.0.0.RC1

25 ACTIVE      org.springframework.aop_3.0.0.RC1

47 ACTIVE      org.springframework.asm_3.0.0.RC1

48 ACTIVE      org.springframework.core_3.0.0.RC1

49 ACTIVE      org.springframework.context_3.0.0.RC1

50 ACTIVE      org.springframework.expression_3.0.0.RC1

简单的使用方法就是新建一个Java Work Set,将上面有关Spring的bundle 都以Plugins and Fragments 导入(右击 import-》)

需要注意的是这边有个比较恶心的事情org.springframework.context是,需要手动更改org.springframework.core中的MANIFEST.MF 将import packages中的org.springframework.asm properties里面的optional钩去掉。同样的org.springframework.context也需要将org.springframework.expression optional钩去掉。

否则在写好xml 自动注入的时候会报错。

3.Spring DM的环境设置(含WEB)

除了2里面所需要的bundle外还需要额外的五个:org.springframework.osgi.catalina.start.osgi,org.springframework.osgi.catalina.osgi,org.springframework.osgi.web.extender,org.springframework.osgi.web,javax.servlet.前四个需要import,最后一个直接在run
configuration里面添加。

这里面需要注意的是,由于org.springframework.osgi.catalina.start.osgi是依赖于org.springframework.osgi.catalina.osgi,直接run的话会报错,这里有需要手动改org.springframework.osgi.catalina.osgi里面的MANIFEST.MF文件将import package里面的javax.servlet以及javax.servlet.http改成非optional而将java.servlet.resources改成optional。然后重新run,无报错:

osgi> ss

"Framework is launched."

id State       Bundle

0 ACTIVE      org.eclipse.osgi_3.10.102.v20160118-1700

1 ACTIVE      org.apache.felix.gogo.command_0.10.0.v201209301215

2 ACTIVE      org.apache.felix.gogo.runtime_0.10.0.v201209301036

3 ACTIVE      org.springframework.osgi.io_2.0.0.M1

4 ACTIVE      org.springframework.osgi.extender_2.0.0.M1

5 ACTIVE      org.apache.felix.gogo.shell_0.10.0.v201212101605

6 ACTIVE      org.springframework.osgi.core_2.0.0.M1

7 ACTIVE      org.eclipse.equinox.console_1.1.100.v20141023-1406

19 ACTIVE      org.apache.commons.logging_1.1.1.v201101211721

20 ACTIVE      org.springframework.beans_3.0.0.RC1

21 ACTIVE      com.springsource.org.aopalliance_1.0.0

24 ACTIVE      org.springframework.context.support_3.0.0.RC1

25 ACTIVE      org.springframework.aop_3.0.0.RC1

47 ACTIVE      org.springframework.asm_3.0.0.RC1

48 ACTIVE      org.springframework.core_3.0.0.RC1

49 ACTIVE      org.springframework.context_3.0.0.RC1

50 ACTIVE      org.springframework.expression_3.0.0.RC1

51 ACTIVE      org.springframework.osgi.catalina.start.osgi_1.0.0

52 ACTIVE      org.springframework.osgi.catalina.osgi_5.5.23.SNAPSHOT

53 ACTIVE      org.springframework.osgi.web.extender_2.0.0.M1

54 ACTIVE      org.springframework.osgi.web_2.0.0.M1

55 ACTIVE      javax.servlet_3.1.0.v201410161800
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  OSGi