2016-11-29 2 views
0

私は一般的に飼い猫とキュレーターには新しいです。 キュレーターを使用して動物園に接続し、読み書きを試みています。 このコードはスタンドアロンのJavaアプリケーションから実行されたときにうまく動作しますが、osgiバンドル内に埋め込まれていると、zookeeperサーバーに接続できません。 OSGiバンドルの場合osgiバンドル内でapache curatorを動作させるには?

import org.apache.curator.framework.CuratorFramework; 
import org.apache.curator.framework.CuratorFrameworkFactory; 

CuratorFramework curator = CuratorFrameworkFactory.newClient(someConnectionString, retryPolicy); 
curator.start(); 
try { 
    curator.getZookeeperClient().blockUntilConnectedOrTimedOut(); //returns false from osgi but true from standalone application 
} 
catch (InterruptedException e) { ... } 

私はキュレーター・フレームワーク-2.9.0.jar、キュレーター・クライアント2.9.0.jarバンドル内のlibフォルダ内の他の依存関係を含めています。 ランタイムエラーが発生していないため、すべての依存関係が処理されているようです。

キュレーターライブラリがosgiフレームワークをサポートしているかどうか試してみましたが、2013年にこの問題が発生し、解決済みとマークされています。

私はここで何かが分かりませんか?

+0

を明らかにし、この呼び出しは単にfalseを返しますが、それが失敗した理由に関しては何の情報?そのため、原因を診断することはほとんど不可能です。より多くの情報を得る方法はありますか? –

+0

返事ありがとう:私は情報がほとんどないことに同意し、とにかくより多くの情報を集めるためには見つかりませんでした。まだこの問題に固執していますが、いくつかのことを試してみると、うまくいけば最終的に道が見つかるでしょう。 – Mrigank

+0

@NeilBartlettあなたはスポットにいました!それが5分の仕事だった後、エラー情報を取得することが重要でした。以下の答えを投稿してください。ありがとう!! – Mrigank

答えて

0

インポートが欠落している単純なケースになりました。しかし、ClassNotFoundExceptionsはコンソールには届かず、むしろlog4jに行きました。 log4jのを初期化するには、以下を追加するので、不足しているなどの輸入org.ietf.jgssの

import org.apache.log4j.BasicConfigurator; 
import org.apache.log4j.Logger; 

      BasicConfigurator.configure(); 
      Logger.getRootLogger().setLevel(org.apache.log4j.Level.ALL); 
関連する問題