I have a very simple bean definition file where I added code for CXF
logging:

<beans xmlns="http://www.springframework.org/schema/beans";
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
    xmlns:cxf="http://cxf.apache.org/core";
    xmlns:jaxrs="http://cxf.apache.org/jaxrs";
    xmlns:osgi="http://www.springframework.org/schema/osgi";
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
    http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
    http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd
    http://www.springframework.org/schema/osgi
    http://www.springframework.org/schema/osgi/spring-osgi.xsd";>

    <cxf:bus>
        <cxf:features>
            <cxf:logging/>
        </cxf:features>
    </cxf:bus>

    <jaxrs:server id="someService" address="/service">
...


When I deploy my application to an Apache Karaf (3.0.x) container, I get a
ClassNotFoundException for
org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor

Bundle org.apache.cxf.cxf-core is installed. When I do "headers
org.apache.cxf.cxf-core" I can see

Export-Package =
...
        org.apache.cxf.bus.spring;version=3.0.2,
...


What am I missing here?

Here's the full stack trace:

karaf@root()> Exception in thread "SpringOsgiExtenderThread-12"
org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find
class [org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor] for
bean with name
'org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor' defined in
null; nested excepti on is java.lang.ClassNotFoundException:
org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor not found from
bundle [org.demo.mystuff]
        at
org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1278)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:575)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1347)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:913)
        at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:617)
        at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:934)
        at
org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$1600(AbstractDelegatedExecutionApplicationContext.java:69)
        at
org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:355)
        at
org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
        at
org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320)
        at
org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:132)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException:
org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor not found from
bundle [org.demo.mystuff]
        at
org.springframework.osgi.util.BundleDelegatingClassLoader.findClass(BundleDelegatingClassLoader.java:103)
        at
org.springframework.osgi.util.BundleDelegatingClassLoader.loadClass(BundleDelegatingClassLoader.java:156)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at org.springframework.util.ClassUtils.forName(ClassUtils.java:265)
        at
org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:419)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1299)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1270)
        ... 11 more
Caused by: java.lang.ClassNotFoundException:
org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor
        at
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501)
        at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
        at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
        at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at
org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:340)
        at
org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
        at
org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1212)
        at
org.springframework.osgi.util.BundleDelegatingClassLoader.findClass(BundleDelegatingClassLoader.java:99)
        ... 17 more

Reply via email to