看了http://developer.51cto.com/art/200909/154863.htm 真心感到,最强大最有组织的技术网站还是 51cto,牛人应该也是最多的。

以前逛51cto的比较少,罪过。。。。

吐槽:

参照http://developer.51cto.com/art/200909/154757.htm来搭建基于osgi的spring dm环境, 不过实在是搞不定,费心费力,几个月过去了的今天,终于搞定了—— 真tm坑爹,原来里面的spring dm版本是1.0.2

而这个版本下载不了,从而找不到文章里面描述

org.springframeork.bundle.spring.aop   等等jar

下载了2.0 也找到‘对应’的jar,作为plugin 导入进来,却,无论如何不能达到描述的效果,不能使dm生效,后面干脆把lib下的所有的jar全部导入,这样却就ok,内牛满面!

 构建osgi - spring dm:(其实主要就是准备好jar。)

A下载Spring DM框架spring-osgi-2.0.zip,

B 解压抽取dist下面的jar:Spring DM提供的三个OSGi专用的Spring套件/JAR:

1. org.springframeork.osgi.bundle.extender  
2. org.springframeork.osgi.bundle.core  
3. org.springframeork.osgi.bundle.io

以plugin 方式导入F:\ws\spring-osgi-2\spring-osgi-2.0.0.M1\dist的上面的三个jar,

C 同样方式导入F:\ws\spring-osgi-2\spring-osgi-2.0.0.M1\lib 下面所有的jar, 其实不用导入jetty相关的,不过导入也是没关系的。

简单来说,这样就可以了! 不过启动后可能会出现:

osgi> log4j:WARN No appenders could be found for logger (org.springframework.osgi.extender.internal.boot.ChainActivator).
log4j:WARN Please initialize the log4j system properly.

这是由于没配置好osgi log框架引起的。后面接着配置osgi log

Osgi Spring Dm的机制

对于Spring动态模型,在启动时,org.springframeork.osgi.bundle.extender 查询所有处于解析(resolved)状态以了解它们是否由Spring提供(Springpowered)。如果套件具有Spring-Context 清单头(manifest header),或者在其 META-INF/spring  文件夹中包含 XML 文件,extender 套件将认为该套件是由Spring提供的

各个基本spring dm jar的作用:

Osgi Spring Dm是直接基于org.eclipse.osgi_3.4.0.v2-xxx.jar的, 和其他osgi bundler 不发生关系。 和Activator没关系

 就是说, Activator启动是否成功,跟Osgi Spring Dm是否能够运行没有关系。

2 如果Osgi Spring Dm 环境没搭建好(相关jar未导入),或者 META-INF/spring 配置有误,或者 META-INF/spring 里面的bean对应的类找不到,则 , Osgi Spring Dm框架不会生效。 —— 如果此时,osgi log也没有配好,则看不到任何dm输出,这是非常非常坑爹的。——没有任何输出,导致我 都不知道到底哪里出了问题。。。

3  如果Osgi Spring Dm 环境配置好了, 则META-INF/spring  文件夹中包含的 XML 文件自动生效。

  

osgi> log4j:WARN No appenders could be found for logger (org.springframework.osgi.extender.internal.boot.ChainActivator).
log4j:WARN Please initialize the log4j system properly.
start osgi !
Hello Spring World!!
toString :: first name : aa -- last name :bb

另外参见:

http://chenjumin.iteye.com/blog/819070

osgi dm的更多相关文章

  1. OSGI引入Spring DM实现对服务对象的管理

    一.异同 熟悉Spring的应该也都了解它的IOC的功能,那么对于在OSGI开发环境下,在使用IOC功能时有什么不同呢?最重要的一点就是Spring上下文对象,每个Spring-Powered Bun ...

  2. osgi学习

    Bundle可以被动态地安装.启动.停止和卸载.Bundle是服务(Service)和组件(Component)的载体.在OSGi中,每个Bundle都有自己独立于其他Bundle的ClassLoad ...

  3. OSGi 的核心配置、动态化及问题

    一.OSGi的核心组件Bundle,与java中jar包的差别就是元数据配置:      常用的Bundle元数据定义:     a) Bundle-Activator:定义Activator的实现全 ...

  4. OSGi 对软件复杂度的影响

    出自 深度理解 osgi equinox 原理 1.2.1 OSGi 能让软件开发变得更容易吗 不可否认,OSGi 的入门门槛在 Java 众多技术中算是比较高的,相对陡峭的学习曲线会 为第一次使用 ...

  5. OSGI(面向Java的动态模型系统)

    基本简介编辑 OSGI服务平台提供在多种网络设备上无需重启的动态改变构造的功能.为了最小化耦合度和促使这些耦合度可管理,OSGi技术提供一种面向服务的架构,它能使这些组件动态地发现对方.OSGi联 O ...

  6. Hello OSGI --- Apache Felix

    Apache Felix Felix是一个OSGi版本4规范的Apache实现. OSGi是一个基于Java的服务平台规范,其目标是被需要长时间运行.动态更新.对运行环境破坏最小化的系统所使用.有许多 ...

  7. OSGI框架学习

    OSGI框架三个重要概念 OSGi框架是根据OSGi规范中定义的三个概念层设计的:模块.模块生命周期.服务. 模块层定义了OSGi模块的概念(bundle,即包含一个元数据MANIFEST.MF的JA ...

  8. Spring DM所提供的Bundle监听接口OsgiBundleApplicationContextListener

    通过使用Spring DM提供的监听接口,我们可以更好的对服务进行管控,其实该接口也非常简单就能使用上,只要自定义一个类实现OsgiBundleApplicationContextListener接口 ...

  9. OSGi解决的问题

    osgi最明显的缺陷 bundle尽管可以为隔离的服务建立独立生命周期管理的热部署方式,以及明确的服务导出和导入依赖能力,但是其最终基于jvm,无法对bundle对应的服务实现计算资源的隔离,一个服务 ...

随机推荐

  1. How to Test Controller Concerns in Rails 4

    Concerns are a new feature that was added in Rails 4. They allow to clean up code in your models and ...

  2. Android视图绘制流程完全解析,带你一步步深入了解View(二)

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/16330267 在上一篇文章中,我带着大家一起剖析了一下LayoutInflater ...

  3. iframe的自适应

    iframe标签的应用感觉很强大,但是有的低版本好像不是很兼容,所以有的时候需要注意这个的兼容问题,iframe 元素会创建包含另外一个文档的内联框架(即行内框架),他的属性有很多,也很容易理解,就不 ...

  4. VS2013 密钥 – 所有版本(Visual Studio Ultimate,Premium,Professional,TFS)

    Visual Studio Ultimate 2013 KEY(密钥):BWG7X-J98B3-W34RT-33B3R-JVYW9 Visual Studio Premium 2013 KEY(密钥) ...

  5. Win7 64下Visual C++ 6.0不兼容

    Win7 64下Visual C++ 6.0不兼容 安装VSE6.0: 1.运行setup.exe安装程序,会弹出如下的的 程序兼容性助手 提示框,这个是Win7在警告用户vc6存在兼容性问题:此程序 ...

  6. android开机过程简单描述

    1 开机引导bootloader,相当于电脑开机启动bios 2 引导过后可以进入三种模式:fastboot, recovery, linux kernel.前两种跟版本升级相关,正常开机进入linu ...

  7. Python socket (多线程)

    Server 端 code import SocketServer class MyTCPHandler(SocketServer.BaseRequestHandler): ""& ...

  8. HDU 1010 Tempter of the Bone

    题意:从开始位置走到结束位置,恰好走 t 步 YES 否则 NO 搜索题,由于是恰好走到,所以用到了奇偶剪枝 什么是奇偶剪枝,我也是刚知道 所给步数为 t ,起始位置坐标 (begin_x,begin ...

  9. 测试架构图 High Level 产品技术(无事来更新,证明这个博客还是Live的)

    一个完整的产品测试所需要掌握的产品技术架构. 1.最底层硬件平台(服务器与存储) 对于一个大型商业解决方案来说,性能与可靠性是非常重要的要求,那么服务器与存储就是专门来满足需求的. 服务器: 服务器端 ...

  10. sharepoint学习。

    企业门户:对全公司共用的信息进行统一管理.存储和发布,确保信息在公司范围内能够被及时传递 报表中心:集中管理.授权并发布所有业务报表,为各级管理人员提供各种数据.图形分析报表 办公协作:提供用户日常工 ...