OSGI的bundle工程本地运行正常,放到服务器总报找不到Activator

  1. 本地正常启动,部署服务器报如下错误:
    2017-01-06 11:19:39.010 [SpringOsgiExtenderThread-34]  ERROR [org.springframework.osgi.extender.internal.activator.ContextLoaderListener-50] - Application context refresh failed (OsgiBundleXmlApplicationContext(bundle=net.neptune.app.sfckprotocol, config=osgibundle:/META-INF/spring/*.xml))
    org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [net.neptune.app.sfckprotocol.Activator] for bean with name 'activator' defined in URL [bundleentry://95.fwk147498354/META-INF/spring/beanContext.xml]; nested exception is java.lang.ClassNotFoundException: net.neptune.app.sfckprotocol.Activator not found from bundle [net.neptune.app.sfckprotocol]
    	at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1261) ~[na:na]
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:576) ~[na:na]
    	at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1330) ~[na:na]
    	at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:896) ~[na:na]
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:566) ~[na:na]
    	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895) ~[na:na]
    	at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$1600(AbstractDelegatedExecutionApplicationContext.java:69) ~[spring-osgi-core-1.2.1.jar:1.2.1]
    	at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:355) ~[spring-osgi-core-1.2.1.jar:1.2.1]
    	at org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85) ~[na:na]
    	at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320) ~[spring-osgi-core-1.2.1.jar:1.2.1]
    	at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:132) [spring-osgi-extender-1.2.1.jar:1.2.1]
    	at java.lang.Thread.run(Thread.java:745) [na:1.7.0_79]
    Caused by: java.lang.ClassNotFoundException: net.neptune.app.sfckprotocol.Activator not found from bundle [net.neptune.app.sfckprotocol]
    	at org.springframework.osgi.util.BundleDelegatingClassLoader.findClass(BundleDelegatingClassLoader.java:103) ~[spring-osgi-core-1.2.1.jar:1.2.1]
    	at org.springframework.osgi.util.BundleDelegatingClassLoader.loadClass(BundleDelegatingClassLoader.java:156) ~[spring-osgi-core-1.2.1.jar:1.2.1]
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ~[na:1.7.0_79]
    	at org.springframework.util.ClassUtils.forName(ClassUtils.java:257) ~[spring-core-3.0.6.RELEASE.jar:3.0.6.RELEASE]
    	at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:408) ~[na:na]
    	at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1282) ~[na:na]
    	at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1253) ~[na:na]
    	... 11 common frames omitted
    Caused by: java.lang.ClassNotFoundException: net.neptune.app.sfckprotocol.Activator
    	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513) ~[osgi.jar:na]
    	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) ~[osgi.jar:na]
    	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) ~[osgi.jar:na]
    	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) ~[osgi.jar:na]
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ~[na:1.7.0_79]
    	at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345) ~[osgi.jar:na]
    	at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229) ~[osgi.jar:na]
    	at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1207) ~[osgi.jar:na]
    	at org.springframework.osgi.util.BundleDelegatingClassLoader.findClass(BundleDelegatingClassLoader.java:99) ~[spring-osgi-core-1.2.1.jar:1.2.1]
    	... 17 common frames omitted
  2. 和之前服务器上正常的bundle进行对比发现:
  3. 原因是build.properties文件中,无意删除了".,/"。如下所示:
    source.. = src/
    output.. = bin/
    bin.includes = META-INF/,\
                           .,\                     --手贱删了这行
                           lib/zip4j_1.3.1.jar

猜你喜欢

转载自blog.csdn.net/hekaihaw/article/details/54138209