gpt4 book ai didi

java - 创建 osgi 包时使用 Elasticsearch 时出错

转载 作者:行者123 更新时间:2023-11-29 05:29:43 25 4
gpt4 key购买 nike

为 Elasticsearch 创建了一个包装器。它在作为 Java 应用程序运行时工作正常。但是当我创建 OSGI 包时它抛出一个错误。

  org.elasticsearch.env.FailedToResolveConfigException: Failed to resolve config path [names.txt], tried file path [names.txt], path file [/home/local/PAYODA/sidharthan.r/config/names.txt], and classpath
at org.elasticsearch.env.Environment.resolveConfig(Environment.java:207)
at org.elasticsearch.node.internal.InternalSettingsPreparer.prepareSettings(InternalSettingsPreparer.java:118)
at org.elasticsearch.client.transport.TransportClient.<init>(TransportClient.java:154)
at org.elasticsearch.client.transport.TransportClient.<init>(TransportClient.java:120)
at com.payoda.commons.elasticsearch.util.GenericEsSearch.getES(GenericEsSearch.java:54)

请帮帮我..我正在使用 ES 版本 0.90.10

最佳答案

正如您在 Environment.resolveConfig() 的实现中看到的(抛出异常的那个),它使用 settings.getClassLoader().getResource(path) 解析文件。默认是使用 Classes.getDefaultClassLoader(),它使用 Thread.getContextClassLoader()。由于“names.txt”在 elasticsearch*.jar 中,任何来自 org.elasticsearch.* 类的 ClassLoader 都可以:

Settings settings = ImmutableSettings.settingsBuilder()
.classLoader(Settings.class.getClassLoader())
// snip: add some settings
.build();

或者,您可以将自己的 names.txt 文件放在当前工作目录或配置目录中('path.conf' 设置或默认为 $home/config,$home 是 'path.home 的值' 默认情况下设置或 'user.dir' 系统属性)。

顺便说一句,我自己对 elasticsearch 和 OSGI 做了一些试验,所以也许 molindo-elasticsync有帮助。此外,还有 elasticsearch bundles provided by Servicemix这可能会有帮助。

关于java - 创建 osgi 包时使用 Elasticsearch 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21528766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com