2017-07-18 8 views
0

私のプロジェクトでは、activemqからのメッセージを消費して、elasticsearch 2.4データベースに、技術karaf 4.0.8、Apache camel(2.18.1)、camel-elasticsearchコンポーネントを使用しています。 elasticsearch 5データベースにアップグレードしようとしており、クライアント側で変更が必要です。私は新しいラクダコンポーネントcamel-elasticsearch5がapache-camel 2.19.0でそこにあることを発見しました。私はラクダをアップグレードする。その後、期待通りに動作していないように見えます。 1. camel:context-listのようなcamelコマンドは機能しません。 2.メッセージがactivemqから消費されないように、ルートは機能していません。camel-elasticsearch5コンポーネントが動作していません

さらに、ログに警告があります。

2017-07-18 06:57:27,144 | INFO | nt Dispatcher: 1 | ElasticsearchProducer   | 21 - org.apache.camel.camel-elasticsearch5 - 2.19.0 | Connecting to the ElasticSearch cluster: elasticsearch 
 
2017-07-18 06:57:27,145 | WARN | -SNAPSHOT/deploy | BlueprintEventDispatcher   | 83 - org.apache.aries.blueprint.core - 1.7.1 | Listener caused an exception, will be ignored 
 
java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: Could not initialize class org.elasticsearch.transport.client.PreBuiltTransportClient 
 
     at java.util.concurrent.FutureTask.report(FutureTask.java:122)[:1.8.0_121] 
 
     at java.util.concurrent.FutureTask.get(FutureTask.java:192)[:1.8.0_121] 
 
     at java.util.concurrent.AbstractExecutorService.doInvokeAny(AbstractExecutorService.java:193)[:1.8.0_121] 
 
     at java.util.concurrent.AbstractExecutorService.invokeAny(AbstractExecutorService.java:225)[:1.8.0_121] 
 
     at org.apache.aries.blueprint.utils.threading.ScheduledExecutorServiceWrapper$4.call(ScheduledExecutorServiceWrapper.java:184)[83:org.apache.aries.blueprint.core:1.7.1] 
 
     at org.apache.aries.blueprint.utils.threading.ScheduledExecutorServiceWrapper$15.call(ScheduledExecutorServiceWrapper.java:452)[83:org.apache.aries.blueprint.core:1.7.1] 
 
     at org.apache.aries.blueprint.utils.threading.RWLock.runReadOperation(RWLock.java:35)[83:org.apache.aries.blueprint.core:1.7.1] 
 
     at org.apache.aries.blueprint.utils.threading.ScheduledExecutorServiceWrapper.runUnlessShutdown(ScheduledExecutorServiceWrapper.java:447)[83:org.apache.aries.blueprint.core:1.7.1] 
 
     at org.apache.aries.blueprint.utils.threading.ScheduledExecutorServiceWrapper.invokeAny(ScheduledExecutorServiceWrapper.java:178)[83:org.apache.aries.blueprint.core:1.7.1] 
 
     at org.apache.aries.blueprint.container.BlueprintEventDispatcher.callListener(BlueprintEventDispatcher.java:199)[83:org.apache.aries.blueprint.core:1.7.1] 
 
     at org.apache.aries.blueprint.container.BlueprintEventDispatcher.callListeners(BlueprintEventDispatcher.java:189)[83:org.apache.aries.blueprint.core:1.7.1] 
 
     at org.apache.aries.blueprint.container.BlueprintEventDispatcher.blueprintEvent(BlueprintEventDispatcher.java:140)[83:org.apache.aries.blueprint.core:1.7.1] 
 
     at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:424)[83:org.apache.aries.blueprint.core:1.7.1] 
 
     at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:276)[83:org.apache.aries.blueprint.core:1.7.1] 
 
     at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:300)[83:org.apache.aries.blueprint.core:1.7.1] 
 
     at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:269)[83:org.apache.aries.blueprint.core:1.7.1] 
 
     at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:265)[83:org.apache.aries.blueprint.core:1.7.1] 
 
     at org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:255)[83:org.apache.aries.blueprint.core:1.7.1] 
 
     at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500)[19:org.apache.aries.util:1.1.1] 
 
     at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433)[19:org.apache.aries.util:1.1.1] 
 
     at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725)[19:org.apache.aries.util:1.1.1] 
 
     at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463)[19:org.apache.aries.util:1.1.1] 
 
     at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422)[19:org.apache.aries.util:1.1.1] 
 
     at org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1179)[org.apache.felix.framework-5.6.1.jar:] 
 
     at org.apache.felix.framework.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:730)[org.apache.felix.framework-5.6.1.jar:] 
 
     at org.apache.felix.framework.EventDispatcher.fireBundleEvent(EventDispatcher.java:485)[org.apache.felix.framework-5.6.1.jar:] 
 
     at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4541)[org.apache.felix.framework-5.6.1.jar:] 
 
     at org.apache.felix.framework.Felix.startBundle(Felix.java:2172)[org.apache.felix.framework-5.6.1.jar:] 
 
     at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998)[org.apache.felix.framework-5.6.1.jar:] 
 
     at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1253)[4:org.apache.felix.fileinstall:3.5.6] 
 
     at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1225)[4:org.apache.felix.fileinstall:3.5.6] 
 
     at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:512)[4:org.apache.felix.fileinstall:3.5.6] 
 
     at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:361)[4:org.apache.felix.fileinstall:3.5.6] 
 
     at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:312)[4:org.apache.felix.fileinstall:3.5.6] 
 
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.elasticsearch.transport.client.PreBuiltTransportClient 
 
     at org.apache.camel.component.elasticsearch5.ElasticsearchProducer.doStart(ElasticsearchProducer.java:221) 
 
     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:3629) 
 
     at org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3408) 
 
     at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3262) 
 
     at org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:201) 
 
     at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3046) 
 
     at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:3042) 
 
     at org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3065) 
 
     at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3042) 
 
     at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61) 
 
     at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:2980) 
 
     at org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:244) 
 
     at org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:284) 
 
     at org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:177) 
 
     at org.apache.aries.blueprint.container.BlueprintEventDispatcher$4.call(BlueprintEventDispatcher.java:201) 
 
     at org.apache.aries.blueprint.container.BlueprintEventDispatcher$4.call(BlueprintEventDispatcher.java:199) 
 
     at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_121] 
 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_121] 
 
     at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_121] 
 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_121] 
 
     at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_121] 
 
     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)[:1.8.0_121] 
 
     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)[:1.8.0_121] 
 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_121] 
 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_121] 
 
     at java.lang.Thread.run(Thread.java:745)[:1.8.0_121]

問題を解決するためにどのように任意のアイデア?

注:2.20で利用可能な機能を試しましたが、機能していないようです。ここに問題があります。 I 基本的に2つのバンドルが使用されています。

Elasticsearch-バンドル

Elasticsearchクライアントバンドルmvnrepository.com/artifact/orgをmvnrepository.com/artifact/org.apache.servicemix.bundles/org.apache.servicemix.bundles.elasticsearch/5.4.3_1。 apache.servicemix.bundles/org.apache.servicemix.bundles.elasticsearch-クライアント/ 5.4.3_1

  1. exampleで述べたようにelasticsearch 5で動作するためには、elasticsearchバンドル

  2. で利用可能である TransportClientが必要
  3. 最初のステップでTransportClientを取得するには、PreBuiltTransportClientを使用する必要があります。これはElasticsearch-Clientバンドルで利用できます。

  4. さて問題はTransportClientを返すことが期待されているElasticsearch、クライアントはそれを持っていないし、また、それをインポートしてによって引き起こされるクラスが見つからない例外」 与えないということである:java.lang.ClassNotFoundExceptionが:org.elasticsearch.clientをこれはServiceMixのからバンドルバージョン5.3.2_1とし、Apacheラクダ2.20.0で修正されるべきorg.apache.servicemix.bundles.elasticsearchクライアントによって[127]」

+0

を修正しようとしているすべての作品はありません/ OSGiの中で実行されます。そのスタックトレースよりも多くを得ることができるかどうかを深く掘り下げて調べることができますか?たぶん、elastichseachのソースコードをチェックし、デバッグロギングなどを有効にして、何が起きているのかを見てください。 –

+0

これはよく知られている問題で、既に報告されていますがまだ修正されていません。 [Camel-Community](http://camel.465427.n5.nabble.com/problem-when-using-elasticsearch5-component-with-camel-2-19-0-td5799247.html)、 [Servicemix-コミュニティ](http://servicemix.396122.n5.nabble.com/Problem-when-using-elasticsearch5-component-with-camel-2-19-0-td5724431.html) – anna

答えて

1

が見つかりません.transport.TransportClient。

2.20.xブランチで、我々はあまりにもElasticsearchクライアントのバンドルを持っているが、我々はKaraf

https://github.com/apache/camel/blob/camel-2.19.x/platforms/karaf/features/src/main/resources/features.xml#L508-L522

ため、以下の機能を持っているキャメル2.19.xブランチで

https://github.com/apache/camel/blob/master/platforms/karaf/features/src/main/resources/features.xml#L566-L580

をCamel 2.20.0-SNAPSHOTバージョンで試すことができます。

UPDATE:

これについてJIRAの問題があります:https://issues.apache.org/jira/browse/SM-3454、我々はそれ

+0

2.20.0- SNAPSHOTはまだ[maven repo](https://repo1.maven.org/maven2/org/apache/camel/karaf/apache-camel/)にはありませんか? – anna

+0

マシンにソースコードをビルドするか、次のリポジトリhttp://repository.apache.org/snapshotsを使用することができます。このリポジトリは常に更新されるわけではありません。 – Oscerd

+0

私は2.20.xものを使用するあなたの提案に関する質問を更新しました。 – anna

関連する問題