我是Zookeeper和策展人的新手 尝试使用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年看到了这个问题并标记为已解决。
我错过了一些明显的东西吗?
答案 0 :(得分:1)
原来是一个缺少进口的简单案例。但是,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);