Spring DM(动力学模块),OSGI和Greenpages应用程序

时间:2015-10-01 11:56:13

标签: spring osgi eclipse-virgo spring-dm

' Greenpages应用程序'是Eclipse Virgo站点中提供的示例Web应用程序,它提供了一起使用OSGI和Spring DM的示例,可以部署在Virgo容器中。见:http://www.eclipse.org/virgo/samples/。我能够运行应用程序没有错误。但是一旦我尝试实现 org.springframework.osgi.context.event.OsgiBundleApplicationContextListener 接口,一切都会出错,我开始收到此错误:

  

java.lang.IllegalArgumentException:required property' bundleContext'   尚未设定

OsgiBundleApplicationContextListener接口提供了一种监听BundleContext事件的方法。请参阅:http://docs.spring.io/osgi/docs/current/api/org/springframework/osgi/context/event/OsgiBundleApplicationContextListener.html

我的代码:

public class ApplicationContextObserver实现OsgiBundleApplicationContextListener {     private transient int countRefreshed = 0;     private transient int countClosed = 0;

public void onOsgiApplicationEvent(OsgiBundleApplicationContextEvent evt) {
    if(evt instanceof
            OsgiBundleContextRefreshedEvent) {
        countRefreshed++;
    } else if(evt instanceof
            OsgiBundleContextClosedEvent) {
        countClosed++;
    }
}
public int getCountRefreshed() {
    return countRefreshed;
}
public int getCountClosed() {
    return countClosed;
}

}

声明的bean:

<bean id="ApplicationContextObserver" class="greenpages.ApplicationContextObserver" />
<osgi:service ref="ApplicationContextObserver" interface="org.springframework.osgi.context.event.OsgiBundleApplicationContextListener" />      

为了让事情变得更糟,有时候这个错误根本不会出现,但是当我在容器中部署另一个bundle时,不会调用监听器。

出了什么问题(如果可能的话,你能使用处女座容器,SpringDM和这个监听器附加一个运行的例子吗?)

1 个答案:

答案 0 :(得分:0)