В основном мне нужно индексировать и запрашивать данные из Solr. Итак, во-первых, я пытаюсь создать HttpSolrClient и сталкиваюсь с проблемами с этим. Зависимости, добавленные в проект:
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Edgware.SR5</spring-cloud.version>
<spring-kafka.version>1.3.8.RELEASE</spring-kafka.version>
<curator-test-version>2.12.0</curator-test-version>
<solr.version>7.5.0</solr.version>
<zk.version>3.4.10</zk.version>
<curator-version>4.0.0</curator-version>
<slf4j.version>1.7.7</slf4j.version>
<commons-lang3.version>3.5</commons-lang3.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20171018</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.apache.avro</groupId>
<artifactId>avro</artifactId>
<version>1.8.2</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.avro</groupId>
<artifactId>avro-tools</artifactId>
<version>1.8.2</version>
</dependency>
<dependency>
<groupId>org.apache.avro</groupId>
<artifactId>avro-compiler</artifactId>
<version>1.8.2</version>
</dependency>
<dependency>
<groupId>org.apache.avro</groupId>
<artifactId>avro-maven-plugin</artifactId>
<version>1.8.2</version>
</dependency>
<dependency>
<groupId>tech.allegro.schema.json2avro</groupId>
<artifactId>converter</artifactId>
<version>0.2.5</version>
</dependency>
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>${solr.version}</version>
</dependency>
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-core</artifactId>
<version>${solr.version}</version>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
</exclusion>
<exclusion>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-jetty9</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>${zk.version}</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>${curator-version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-client</artifactId>
<version>${curator-version}</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-test</artifactId>
<version>${curator-test-version}</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>${slf4j.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.avro</groupId>
<artifactId>avro-maven-plugin</artifactId>
<version>1.8.2</version>
<executions>
<execution>
<phase>none</phase>
<goals>
<goal>schema</goal>
</goals>
<configuration>
<sourceDirectory>${project.basedir}/src/main/avro/</sourceDirectory>
<outputDirectory>${project.basedir}/src/main/java/</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
Запустил дерево зависимостей maven.
Результаты ниже:
mvn зависимость: дерево | grep solr
[INFO] + - org.apache.solr: solr-core: jar: 7.5.0: компилировать
[ИНФО] | + - org.apache.solr: solr-solrj: jar: 7.5.0: скомпилировать
В репозитории папка solr имеет только 3 подпапки. 1. solr-core, 2. solr-родитель, 3. solr-solrj
Пробовал запуск mvn в режиме отладки.
mvnDebug чистой установки -X
Получение информации об ошибке ниже:
Приложение не удалось запустить
Описание:
Была предпринята попытка вызвать метод org.apache.solr.client.solrj.impl.HttpSolrClient. (Ljava / lang / String;) V, но он не существует. Его класс org.apache.solr.client.solrj.impl.HttpSolrClient доступен в следующих местах:
jar:file:/Users/admin/.m2/repository/org/apache/solr/solr-solrj/7.5.0/solr-solrj-7.5.0.jar!/org/apache/solr/client/solrj/impl/HttpSolrClient.class
Загружен из следующего места:
file:/Users/admin/.m2/repository/org/apache/solr/solr-solrj/7.5.0/solr-solrj-7.5.0.jar
Действие:
Исправьте путь к классу вашего приложения, чтобы оно содержало одну совместимую версию org.apache.solr.client.solrj.impl.HttpSolrClient
java.lang.IllegalStateException: не удалось загрузить ApplicationContext
Вызвано: org.springframework.beans.factory.BeanCreationException: Ошибка создания бина с именем 'solrClient', определенного в ресурсе пути к классу [org / springframework / boot / autoconfigure / solr / SolrAutoConfiguration.class]: создание экземпляра бина с помощью метода фабрики не удалось; вложенным исключением является org.springframework.beans.BeanInstantiationException: не удалось создать экземпляр [org.apache.solr.client.solrj.SolrClient]: фабричный метод 'solrClient' вызвал исключение; Вложенное исключение - java.lang.NoSuchMethodError: org.apache.solr.client.solrj.impl.HttpSolrClient. (Ljava / lang / String;) V
Вызвано: org.springframework.beans.BeanInstantiationException: Не удалось создать экземпляр [org.apache.solr.client.solrj.SolrClient]: Фабричный метод 'solrClient' вызвал исключение; Вложенное исключение - java.lang.NoSuchMethodError: org.apache.solr.client.solrj.impl.HttpSolrClient. (Ljava / lang / String;) V
Вызывается: java.lang.NoSuchMethodError: org.apache.solr.client.solrj.impl.HttpSolrClient. (Ljava / lang / String;) V
private HttpSolrClient solrClient;
public SolrJavaIntegration(String clientUrl) {
solrClient = new HttpSolrClient.Builder(clientUrl).build();
}
необходимо иметь возможность создавать HttpSolrClient без каких-либо проблем, но с этим возникают проблемы.