' 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和这个监听器附加一个运行的例子吗?)
答案 0 :(得分:0)