2015-12-31 10 views
0

Класс ImmutableSettings в проекте с эластичным поиском больше не существует. Я обнаружил, что класс был удален., какую функцию я могу использовать вместо ImmutableSettings.settingsBuilder() в elasticsearch 2.1

Я использую функцию settingsBuilder() в классе ImmutableSetting, но теперь он удален. кто-нибудь предлагает мне, какую функцию я буду использовать вместо> ImmutableSettings.settingsBuilder().

Я использую эту функцию, как показано ниже.

ImmutableSettings.settingsBuilder().put("cluster.name",properties.getProperty(ELS_CLUSTER_NAME)).put("client.transport.sniff", true).build();

+1

Возможный дубликат [ElasticSearch 2.0 Java API: java.lang.ClassNotFoundException: org.elasticsearch.common.settings.ImmutableSettings $ Builder] (http://stackoverflow.com/questions/33277072/elasticsearch-2-0-java -api-java-lang-classnotfoundexception-org-elasticsearch) – Val

+0

Я уже проверил это, но я не могу получить решение. В этой ссылке показано использование настроек.Builder(). но это не сработает. Я задаю отдельный вопрос. Можете ли вы предложить мне то, что я могу использовать вместо ImmutableSettings. settingBuildet() method – mohan

+0

Что значит «это не сработает»? Какая у вас ошибка? – Val

ответ

1

Ваш код хорошо, хотя по ошибке вы упоминаете, то есть противоречивые зависимости от библиотеки Джексона.

Что может случиться, так это то, что вы зависите от одной версии библиотеки Джексона, а некоторые другие ссылки ссылаются на другую версию той же библиотеки. Во время выполнения загружается неправильный JAR (возможно, древний с версией ниже 2.3) и, следовательно, ошибка, которую вы видите.

Вам нужно выяснить, где конфликт. Вы можете сделать это с помощью mvn dependency:tree (how to solve conflicts), чтобы увидеть, где конфликт берет свой корень. После того, как вы определили неисправную библиотеку, вы можете указать exclude a specific dependency для конкретной библиотеки вашего POM, чтобы решить проблему.

2

Я недавно повышен с 1,7 до 2.1.1, и это изменение, которое я должен был сделать:

Settings settings = Settings.settingsBuilder().put("cluster.name", "elasticsearch").put("client.transport.sniff", true).build(); 
    TransportClient client = new TransportClient.Builder().settings(settings).build(); 
    client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));