Hi Gabriel,
Karaf 2.2.3 now ships Spring 3.0.6, whereas CXF 2.4.2 and Camel 2.8.0
use Spring 3.0.5.
The other problem is that ServiceMix 4.3 is based on Camel 2.6.0 (not
2.8.0). There were big changes between Camel 2.6.0 and 2.8.0, especially
around the CamelContext signatures. ServiceMix 4.4 will use Camel 2.8.1
(and Karaf 2.2.2).
Regards
JB
On 09/08/2011 10:29 AM, Gabriel.Dhalluin wrote:
Hello,
This is my first post here so just tell me if I do something wrong.
I am trying to use cxf 2.4.2, karaf 2.2.3 and ServiceMix 4.3.0 features
files. There are some issues between karaf and cxf due to the version of
spring (3.0.6 in karaf and 3.0.5 in cxf), this is not really a problem, I
can modify the xml files to make the version match. The real problem comes
from ServiceMix 4.3.0. I want to use camel-nmr with camel 2.8.0, I have
modified the features file to match the version of camel, like this:
<repository>mvn:org.apache.karaf.assemblies.features/standard/2.2.2/xml/features</repository>
<repository>mvn:org.apache.camel.karaf/apache-camel/2.8.0/xml/features</repository>
<feature name="camel-nmr" version="4.3.0">
<feature version="2.8.0">camel</feature>
<feature version="1.4.0">nmr</feature>
<bundle>mvn:org.apache.servicemix.camel/org.apache.servicemix.camel.component/4.3.0</bundle>
</feature>
<feature name="document" version="1.4.0">
<bundle>mvn:org.apache.servicemix.document/org.apache.servicemix.document/1.4.0</bundle>
</feature>
<feature name="nmr" version="1.4.0">
<feature>document</feature>
<bundle>mvn:org.apache.servicemix/servicemix-utils/1.4.0</bundle>
<bundle>mvn:org.fusesource.commonman/commons-management/1.0</bundle>
<bundle>mvn:org.apache.servicemix.nmr/org.apache.servicemix.nmr.api/1.4.0</bundle>
<bundle>mvn:org.apache.servicemix.nmr/org.apache.servicemix.nmr.core/1.4.0</bundle>
<bundle>mvn:org.apache.servicemix.nmr/org.apache.servicemix.nmr.osgi/1.4.0</bundle>
<bundle>mvn:org.apache.servicemix.nmr/org.apache.servicemix.nmr.management/1.4.0</bundle>
</feature>
But then I ran into a problem, I can't use the nmr component:
Exception in thread "SpringOsgiExtenderThread-15"
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'nmr' defined in OSGi
resource[classpath:org/apache/servicemix/camel/nmr/camel-nmr.xml|bnd.id=418|bnd.sym=my-bundle-where-i-declare-nmr-endpoint]:
Initialization of bean failed; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'camelContext': Invocation of init method failed; nested exception
is java.lang.NoSuchMethodError:
org.apache.camel.model.RouteDefinition.wireTap(Ljava/lang/String;)Lorg/apache/camel/model/ProcessorDefinition;
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
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:662)
Caused by: org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'camelContext': Invocation of init method failed;
nested exception is java.lang.NoSuchMethodError:
org.apache.camel.model.RouteDefinition.wireTap(Ljava/lang/String;)Lorg/apache/camel/model/ProcessorDefinition;
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at
org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1075)
at
org.apache.camel.spring.CamelBeanPostProcessor.getOrLookupCamelContext(CamelBeanPostProcessor.java:247)
at
org.apache.camel.spring.CamelBeanPostProcessor.postProcessBeforeInitialization(CamelBeanPostProcessor.java:99)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:394)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1413)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
... 13 more
Caused by: java.lang.NoSuchMethodError:
org.apache.camel.model.RouteDefinition.wireTap(Ljava/lang/String;)Lorg/apache/camel/model/ProcessorDefinition;
at myPackages.MyRoutes.configure(MyRoutes.java:30)
at
org.apache.camel.builder.RouteBuilder.checkInitialized(RouteBuilder.java:322)
at
org.apache.camel.builder.RouteBuilder.configureRoutes(RouteBuilder.java:277)
at
org.apache.camel.builder.RouteBuilder.addRoutesToCamelContext(RouteBuilder.java:263)
at
org.apache.camel.impl.DefaultCamelContext.addRoutes(DefaultCamelContext.java:611)
at
org.apache.camel.core.xml.AbstractCamelContextFactoryBean.installRoutes(AbstractCamelContextFactoryBean.java:619)
at
org.apache.camel.core.xml.AbstractCamelContextFactoryBean.afterPropertiesSet(AbstractCamelContextFactoryBean.java:306)
at
org.apache.camel.osgi.CamelContextFactoryBean.afterPropertiesSet(CamelContextFactoryBean.java:64)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
... 25 more
I guess, with the NoSuchMethodError, that I can't use the version 4.3.0 of
org.apache.servicemix.camel.component and/or the versio 1.4 of nmr with
camel 2.8.0. Is that correct?
Am I doing everything wrong in the first place? Should I downgrade
everything to match the versions used by ServiceMix 4.3.0?
Is it possible to find a version of nmr and
org.apache.servicemix.camel.component compatible with camel 2.8.0?
I've found some features of fusesource using a 4.4.0 version of ServiceMix
and a 1.5 version of NMR, for example:
mvn:org.apache.servicemix.camel/org.apache.servicemix.camel.component/4.4.0-fuse-00-43,
but the url is not resolved.
Another thing, when I ran the WebConsole of Karaf 2.2.2, I got the following
Warning:
15:11:18,554 | WARN | qtp290488549-54 | / |
.eclipse.jetty.util.log.Slf4jLog 50 | 270 - org.eclipse.jetty.util -
7.4.2.v20110526 | org.ops4j.pax.web.service.spi.model.ServletModel-5: Failed
to instantiate plugin
org.apache.felix.webconsole.internal.deppack.DepPackServlet
java.lang.NoClassDefFoundError:
org/osgi/service/deploymentadmin/DeploymentException
at java.lang.Class.getDeclaredConstructors0(Native Method)[:1.6.0_24]
at
java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)[:1.6.0_24]
at java.lang.Class.getConstructor0(Class.java:2699)[:1.6.0_24]
at java.lang.Class.newInstance0(Class.java:326)[:1.6.0_24]
at java.lang.Class.newInstance(Class.java:308)[:1.6.0_24]
at
org.apache.felix.webconsole.internal.servlet.PluginHolder$InternalPlugin.doGetConsolePlugin(PluginHolder.java:761)[405:org.apache.karaf.webconsole.console:2.2.2]
at
org.apache.felix.webconsole.internal.servlet.PluginHolder$Plugin.getConsolePlugin(PluginHolder.java:532)[405:org.apache.karaf.webconsole.console:2.2.2]
at
org.apache.felix.webconsole.internal.servlet.PluginHolder.getLocalizedLabelMap(PluginHolder.java:242)[405:org.apache.karaf.webconsole.console:2.2.2]
at
org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:420)[405:org.apache.karaf.webconsole.console:2.2.2]
at
org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:384)[405:org.apache.karaf.webconsole.console:2.2.2]
at
org.apache.felix.webconsole.internal.KarafOsgiManager.doService(KarafOsgiManager.java:67)[405:org.apache.karaf.webconsole.console:2.2.2]
at
org.apache.felix.webconsole.internal.KarafOsgiManager$1.run(KarafOsgiManager.java:47)[405:org.apache.karaf.webconsole.console:2.2.2]
at java.security.AccessController.doPrivileged(Native Method)[:1.6.0_24]
at javax.security.auth.Subject.doAs(Subject.java:396)[:1.6.0_24]
at
org.apache.felix.webconsole.internal.KarafOsgiManager.service(KarafOsgiManager.java:45)[405:org.apache.karaf.webconsole.console:2.2.2]
at
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:538)[278:org.eclipse.jetty.servlet:7.4.2.v20110526]
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:478)[278:org.eclipse.jetty.servlet:7.4.2.v20110526]
at
org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:70)[287:org.ops4j.pax.web.pax-web-jetty:1.0.4]
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)[276:org.eclipse.jetty.server:7.4.2.v20110526]
at
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:480)[277:org.eclipse.jetty.security:7.4.2.v20110526]
at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225)[276:org.eclipse.jetty.server:7.4.2.v20110526]
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:937)[276:org.eclipse.jetty.server:7.4.2.v20110526]
at
org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:116)[287:org.ops4j.pax.web.pax-web-jetty:1.0.4]
at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:406)[278:org.eclipse.jetty.servlet:7.4.2.v20110526]
at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183)[276:org.eclipse.jetty.server:7.4.2.v20110526]
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:871)[276:org.eclipse.jetty.server:7.4.2.v20110526]
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)[276:org.eclipse.jetty.server:7.4.2.v20110526]
at
org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:72)[287:org.ops4j.pax.web.pax-web-jetty:1.0.4]
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)[276:org.eclipse.jetty.server:7.4.2.v20110526]
at
org.eclipse.jetty.server.Server.handle(Server.java:346)[276:org.eclipse.jetty.server:7.4.2.v20110526]
at
org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:589)[276:org.eclipse.jetty.server:7.4.2.v20110526]
at
org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:1048)[276:org.eclipse.jetty.server:7.4.2.v20110526]
at
org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:601)[272:org.eclipse.jetty.http:7.4.2.v20110526]
at
org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:214)[272:org.eclipse.jetty.http:7.4.2.v20110526]
at
org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:411)[276:org.eclipse.jetty.server:7.4.2.v20110526]
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:535)[271:org.eclipse.jetty.io:7.4.2.v20110526]
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40)[271:org.eclipse.jetty.io:7.4.2.v20110526]
at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:529)[270:org.eclipse.jetty.util:7.4.2.v20110526]
at java.lang.Thread.run(Thread.java:662)[:1.6.0_24]
Caused by: java.lang.ClassNotFoundException:
org.osgi.service.deploymentadmin.DeploymentException not found by
org.apache.karaf.webconsole.console [405]
at
org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:787)
at org.apache.felix.framework.ModuleImpl.access$400(ModuleImpl.java:71)
at
org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1768)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)[:1.6.0_24]
... 39 more
15:11:18,559 | WARN | qtp290488549-54 | / |
.eclipse.jetty.util.log.Slf4jLog 50 | 270 - org.eclipse.jetty.util -
7.4.2.v20110526 | org.ops4j.pax.web.service.spi.model.ServletModel-5: Failed
to instantiate plugin
org.apache.felix.webconsole.internal.compendium.ComponentsServlet
java.lang.NoClassDefFoundError: org.apache.felix.scr.ScrService not found by
org.apache.karaf.webconsole.console [405]
at
org.apache.felix.webconsole.internal.compendium.ComponentsServlet.class$(ComponentsServlet.java:74)[405:org.apache.karaf.webconsole.console:2.2.2]
at
org.apache.felix.webconsole.internal.compendium.ComponentsServlet.<clinit>(ComponentsServlet.java:74)[405:org.apache.karaf.webconsole.console:2.2.2]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)[:1.6.0_24]
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)[:1.6.0_24]
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)[:1.6.0_24]
at
java.lang.reflect.Constructor.newInstance(Constructor.java:513)[:1.6.0_24]
at java.lang.Class.newInstance0(Class.java:355)[:1.6.0_24]
at java.lang.Class.newInstance(Class.java:308)[:1.6.0_24]
at
org.apache.felix.webconsole.internal.servlet.PluginHolder$InternalPlugin.doGetConsolePlugin(PluginHolder.java:761)[405:org.apache.karaf.webconsole.console:2.2.2]
at
org.apache.felix.webconsole.internal.servlet.PluginHolder$Plugin.getConsolePlugin(PluginHolder.java:532)[405:org.apache.karaf.webconsole.console:2.2.2]
at
org.apache.felix.webconsole.internal.servlet.PluginHolder.getLocalizedLabelMap(PluginHolder.java:242)[405:org.apache.karaf.webconsole.console:2.2.2]
at
org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:420)[405:org.apache.karaf.webconsole.console:2.2.2]
at
org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:384)[405:org.apache.karaf.webconsole.console:2.2.2]
at
org.apache.felix.webconsole.internal.KarafOsgiManager.doService(KarafOsgiManager.java:67)[405:org.apache.karaf.webconsole.console:2.2.2]
at
org.apache.felix.webconsole.internal.KarafOsgiManager$1.run(KarafOsgiManager.java:47)[405:org.apache.karaf.webconsole.console:2.2.2]
at java.security.AccessController.doPrivileged(Native Method)[:1.6.0_24]
at javax.security.auth.Subject.doAs(Subject.java:396)[:1.6.0_24]
at
org.apache.felix.webconsole.internal.KarafOsgiManager.service(KarafOsgiManager.java:45)[405:org.apache.karaf.webconsole.console:2.2.2]
at
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:538)[278:org.eclipse.jetty.servlet:7.4.2.v20110526]
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:478)[278:org.eclipse.jetty.servlet:7.4.2.v20110526]
at
org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:70)[287:org.ops4j.pax.web.pax-web-jetty:1.0.4]
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)[276:org.eclipse.jetty.server:7.4.2.v20110526]
at
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:480)[277:org.eclipse.jetty.security:7.4.2.v20110526]
at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225)[276:org.eclipse.jetty.server:7.4.2.v20110526]
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:937)[276:org.eclipse.jetty.server:7.4.2.v20110526]
at
org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:116)[287:org.ops4j.pax.web.pax-web-jetty:1.0.4]
at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:406)[278:org.eclipse.jetty.servlet:7.4.2.v20110526]
at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183)[276:org.eclipse.jetty.server:7.4.2.v20110526]
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:871)[276:org.eclipse.jetty.server:7.4.2.v20110526]
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)[276:org.eclipse.jetty.server:7.4.2.v20110526]
at
org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:72)[287:org.ops4j.pax.web.pax-web-jetty:1.0.4]
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)[276:org.eclipse.jetty.server:7.4.2.v20110526]
at
org.eclipse.jetty.server.Server.handle(Server.java:346)[276:org.eclipse.jetty.server:7.4.2.v20110526]
at
org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:589)[276:org.eclipse.jetty.server:7.4.2.v20110526]
at
org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:1048)[276:org.eclipse.jetty.server:7.4.2.v20110526]
at
org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:601)[272:org.eclipse.jetty.http:7.4.2.v20110526]
at
org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:214)[272:org.eclipse.jetty.http:7.4.2.v20110526]
at
org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:411)[276:org.eclipse.jetty.server:7.4.2.v20110526]
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:535)[271:org.eclipse.jetty.io:7.4.2.v20110526]
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40)[271:org.eclipse.jetty.io:7.4.2.v20110526]
at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:529)[270:org.eclipse.jetty.util:7.4.2.v20110526]
at java.lang.Thread.run(Thread.java:662)[:1.6.0_24]
Is this a real problem, is there a way to fix it?
Thanks for you support,
Regards,
Gabriel
--
View this message in context:
http://karaf.922171.n3.nabble.com/Compatibility-issues-between-Karaf-Cxf-and-ServiceMix-features-tp3319023p3319023.html
Sent from the Karaf - User mailing list archive at Nabble.com.
--
Jean-Baptiste Onofré
[email protected]
http://blog.nanthrax.net
Talend - http://www.talend.com