我是Zookeeper和Curator的新手。
尝试使用Curator连接到Zookeeper并进行读写操作。
从独立的Java应用程序执行时,此代码可以正常工作,但是当嵌入OSGi捆绑软件中时,它将无法连接到Zookeeper服务器。

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

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


对于OSGi捆绑包,我在捆绑包内的lib文件夹中包含了curator-framework-2.9.0.jar,curator-client-2.9.0.jar和其他依赖项。
我没有收到任何运行时错误,因此所有依赖项似乎都已处理。

尝试搜索Curator库是否支持OSGi框架,我确实在2013年发现了此问题,并标记为已解决。

我在这里错过明显的东西吗?

最佳答案

原来是一个缺少进口的简单案例。但是,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);

关于java - 如何使Apache Curator在OSGi捆绑软件中工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40872294/

10-10 19:12