You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@karaf.apache.org by Richard Snowden <ri...@gmail.com> on 2014/11/12 06:10:46 UTC
Karaf 3.0.x: How to enable feature in Karaf?
I have a Web Service with a very simple bean definition file where I added
code for CXF logging. Nothing special, and worked very well with older
versions.
<beans xmlns="http://www.springframework.org/schema/beans"
...
<cxf:bus>
<cxf:features>
<cxf:logging/>
</cxf:features>
</cxf:bus>
<jaxrs:server id="someService" address="/service">
...
</beans>
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 exception 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
Re: Karaf 3.0.x: How to enable feature in Karaf?
Posted by Paul Spencer <pa...@apache.org>.
Richard,
Logging is working in my environment. The environment contains Karaf 3.0.2 JAXWX in CXF 3.0.2 and services are defined using Blueprint.
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
xmlns:jaxws="http://cxf.apache.org/blueprint/jaxws" xmlns:cxf="http://cxf.apache.org/blueprint/core"
xsi:schemaLocation="
http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
http://cxf.apache.org/blueprint/jaxws http://cxf.apache.org/schemas/blueprint/jaxws.xsd
http://cxf.apache.org/blueprint/core http://cxf.apache.org/schemas/blueprint/core.xsd
“>
...
<cxf:bus>
<cxf:features>
<cxf:logging />
</cxf:features>
</cxf:bus>
...
</blueprint
Paul Spencer
On Nov 12, 2014, at 12:10 AM, Richard Snowden <ri...@gmail.com> wrote:
> I have a Web Service with a very simple bean definition file where I added code for CXF logging. Nothing special, and worked very well with older versions.
>
> <beans xmlns="http://www.springframework.org/schema/beans"
> ...
> <cxf:bus>
> <cxf:features>
> <cxf:logging/>
> </cxf:features>
> </cxf:bus>
>
> <jaxrs:server id="someService" address="/service">
> ...
> </beans>
>
>
> 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 exception 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