Hi, You can try to temporary fix it by using dynamic import:
https://karaf.apache.org/manual/latest/#_dynamic_import Regards, François Papon fpa...@apache.org Le 24/01/2019 à 13:31, Michele Andreoli a écrit : > I'm trying to use the camel bundle camel-elasticsearch-rest in a karaf > 4.2.2 environment. > > The camel version installed on my karaf environment is the 2.22.2. > When I'm installing the camel bundle camel-elasticsearch-rest > everything goes well and it install automatically its dependencies: > - org.apache.servicemix.bundles.elasticsearch > (org.apache.servicemix.bundles/org.apache.servicemix.bundles.elasticsearch/6.1.1_1) > - org.apache.servicemix.bundles.elasticsearch-client > (org.apache.servicemix.bundles/org.apache.servicemix.bundles.elasticsearch-client/6.1.1_1) > - org.apache.httpcomponents.httpasyncclient > (org.apache.httpcomponents/httpasyncclient-osgi/4.1.3) > - org.apache.httpcomponents.httpclient > (org.apache.httpcomponents/httpclient-osgi/4.5.5) > - org.apache.httpcomponents.httpcore > (org.apache.httpcomponents/httpcore-osgi/4.4.9) > > http://it.tinypic.com/r/i2tzc9/9 > > > > In my code I call the camel-elasticsearch-rest in this way: > > import org.apache.camel.CamelContext; > import org.apache.camel.builder.RouteBuilder; > > public class ServiceRouteBuilder extends RouteBuilder { > > @Override > public void configure() throws Exception { > > CamelContext context = this.getContext(); > restConfiguration() > .component("jetty") > .host("localhost") > .port(8200) > .contextPath("/api") > .dataFormatProperty("prettyPrint", "true") > .apiProperty("cors", "true"); > > rest("/elastic/test") > .get("/") > .route() > .setBody(simple("{ \"indexName\": \"test-index\" }")) > > .to("elasticsearch-rest://elasticsearch?hostAddresses=127.0.0.1:9200&operation=INDEX&indexName=test-index&indexType=sample"); > } > } > > > > I have installed my jar bundle on karaf, but when camel context > starting I'm receiving this warning that cause the camel routes > shutdown: > > 09:58:44.595 WARN [fileinstall-C:\Program > Files\apache-karaf\4.2.2/deploy] Listener caused an exception, will be > ignored > java.util.concurrent.ExecutionException: > java.lang.NoClassDefFoundError: org/apache/http/client/AuthCache > at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:?] > at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[?:?] > at > java.util.concurrent.AbstractExecutorService.doInvokeAny(AbstractExecutorService.java:193) > ~[?:?] > at > java.util.concurrent.AbstractExecutorService.invokeAny(AbstractExecutorService.java:225) > ~[?:?] > at > org.apache.aries.blueprint.utils.threading.ScheduledExecutorServiceWrapper$4.call(ScheduledExecutorServiceWrapper.java:185) > ~[44:org.apache.aries.blueprint.core:1.10.1] > at > org.apache.aries.blueprint.utils.threading.ScheduledExecutorServiceWrapper$15.call(ScheduledExecutorServiceWrapper.java:446) > ~[44:org.apache.aries.blueprint.core:1.10.1] > at > org.apache.aries.blueprint.utils.threading.RWLock.runReadOperation(RWLock.java:33) > ~[44:org.apache.aries.blueprint.core:1.10.1] > at > org.apache.aries.blueprint.utils.threading.ScheduledExecutorServiceWrapper.runUnlessShutdown(ScheduledExecutorServiceWrapper.java:443) > ~[44:org.apache.aries.blueprint.core:1.10.1] > at > org.apache.aries.blueprint.utils.threading.ScheduledExecutorServiceWrapper.invokeAny(ScheduledExecutorServiceWrapper.java:180) > ~[44:org.apache.aries.blueprint.core:1.10.1] > at > org.apache.aries.blueprint.container.BlueprintEventDispatcher.callListener(BlueprintEventDispatcher.java:188) > [44:org.apache.aries.blueprint.core:1.10.1] > at > org.apache.aries.blueprint.container.BlueprintEventDispatcher.callListeners(BlueprintEventDispatcher.java:178) > [44:org.apache.aries.blueprint.core:1.10.1] > at > org.apache.aries.blueprint.container.BlueprintEventDispatcher.blueprintEvent(BlueprintEventDispatcher.java:133) > [44:org.apache.aries.blueprint.core:1.10.1] > at > org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:427) > [44:org.apache.aries.blueprint.core:1.10.1] > at > org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:278) > [44:org.apache.aries.blueprint.core:1.10.1] > at > org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:299) > [44:org.apache.aries.blueprint.core:1.10.1] > at > org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:268) > [44:org.apache.aries.blueprint.core:1.10.1] > at > org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:264) > [44:org.apache.aries.blueprint.core:1.10.1] > at > org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:254) > [44:org.apache.aries.blueprint.core:1.10.1] > at > org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500) > [44:org.apache.aries.blueprint.core:1.10.1] > at > org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433) > [44:org.apache.aries.blueprint.core:1.10.1] > at > org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725) > [44:org.apache.aries.blueprint.core:1.10.1] > at > org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463) > [44:org.apache.aries.blueprint.core:1.10.1] > at > org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422) > [44:org.apache.aries.blueprint.core:1.10.1] > at > org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1179) > [?:?] > at > org.apache.felix.framework.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:730) > [?:?] > at > org.apache.felix.framework.EventDispatcher.fireBundleEvent(EventDispatcher.java:485) > [?:?] > at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4579) > [?:?] > at org.apache.felix.framework.Felix.startBundle(Felix.java:2174) [?:?] > at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998) > [?:?] > at > org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260) > [10:org.apache.felix.fileinstall:3.6.4] > at > org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233) > [10:org.apache.felix.fileinstall:3.6.4] > at > org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:520) > [10:org.apache.felix.fileinstall:3.6.4] > at > org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) > [10:org.apache.felix.fileinstall:3.6.4] > at > org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) > [10:org.apache.felix.fileinstall:3.6.4] > Caused by: java.lang.NoClassDefFoundError: org/apache/http/client/AuthCache > at > org.apache.camel.component.elasticsearch.ElasticsearchProducer.createClient(ElasticsearchProducer.java:255) > ~[?:?] > at > org.apache.camel.component.elasticsearch.ElasticsearchProducer.startClient(ElasticsearchProducer.java:246) > ~[?:?] > at > org.apache.camel.component.elasticsearch.ElasticsearchProducer.doStart(ElasticsearchProducer.java:237) > ~[?:?] > at > org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) > ~[?:?] > at > org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:75) > ~[?:?] > at > org.apache.camel.impl.DeferServiceStartupListener.onCamelContextStarted(DeferServiceStartupListener.java:49) > ~[?:?] > at > org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3863) > ~[?:?] > at > org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3642) > ~[?:?] > at > org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3494) > ~[?:?] > at > org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:209) > ~[?:?] > at > org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3253) > ~[?:?] > at > org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3249) > ~[?:?] > at > org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3272) > ~[?:?] > at > org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3249) > ~[?:?] > at > org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) > ~[?:?] > at > org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3165) > ~[?:?] > at > org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:243) > ~[?:?] > at > org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:283) > ~[?:?] > at > org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:177) > ~[?:?] > at > org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:190) > ~[?:?] > at > org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:188) > ~[?:?] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:?] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > ~[?:?] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:?] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > ~[?:?] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:?] > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) > ~[?:?] > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) > ~[?:?] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > ~[?:?] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > ~[?:?] > at java.lang.Thread.run(Thread.java:748) ~[?:?] > Caused by: java.lang.ClassNotFoundException: > org.apache.http.client.AuthCache not found by > org.apache.servicemix.bundles.elasticsearch-client [124] > at > org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1639) > ~[?:?] > at > org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80) > ~[?:?] > at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053) > ~[?:?] > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:?] > at > org.apache.camel.component.elasticsearch.ElasticsearchProducer.createClient(ElasticsearchProducer.java:255) > ~[?:?] > at > org.apache.camel.component.elasticsearch.ElasticsearchProducer.startClient(ElasticsearchProducer.java:246) > ~[?:?] > at > org.apache.camel.component.elasticsearch.ElasticsearchProducer.doStart(ElasticsearchProducer.java:237) > ~[?:?] > at > org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) > ~[?:?] > at > org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:75) > ~[?:?] > at > org.apache.camel.impl.DeferServiceStartupListener.onCamelContextStarted(DeferServiceStartupListener.java:49) > ~[?:?] > at > org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3863) > ~[?:?] > at > org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3642) > ~[?:?] > at > org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3494) > ~[?:?] > at > org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:209) > ~[?:?] > at > org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3253) > ~[?:?] > at > org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3249) > ~[?:?] > at > org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3272) > ~[?:?] > at > org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3249) > ~[?:?] > at > org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) > ~[?:?] > at > org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3165) > ~[?:?] > at > org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:243) > ~[?:?] > at > org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:283) > ~[?:?] > at > org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:177) > ~[?:?] > at > org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:190) > ~[?:?] > at > org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:188) > ~[?:?] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:?] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > ~[?:?] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:?] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > ~[?:?] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:?] > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) > ~[?:?] > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) > ~[?:?] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > ~[?:?] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > ~[?:?] > at java.lang.Thread.run(Thread.java:748) ~[?:?] > > The question is why org.apache.servicemix.bundles.elasticsearch-client > does not find the class org.apache.http.client.AuthCache. > This class should be in the dependency > org.apache.httpcomponents.httpclient that is correctly installed on > karaf. > I have seen that in the > org.apache.servicemix.bundles.elasticsearch-client bundle there aren't > imported packages, it is normal? It's a bug or I'm missing something? > > http://it.tinypic.com/r/24v3zaa/9 >