【问题标题】:Caused by: java.lang.NoSuchMethodError: org.apache.solr.client.solrj.impl.HttpSolrClient.<init>(Ljava/lang/String;)V引起:java.lang.NoSuchMethodError: org.apache.solr.client.solrj.impl.HttpSolrClient.<init>(Ljava/lang/String;)V
【发布时间】:2019-09-20 10:12:51
【问题描述】:

基本上,我需要从 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 解决方案 [信息] +- org.apache.solr:solr-core:jar:7.5.0:compile [信息] | +- org.apache.solr:solr-solrj:jar:7.5.0:compile

在存储库中,solr 文件夹只有 3 个子文件夹。 1. solr-core, 2. solr-parent, 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:在类路径资源[org/springframework/boot/autoconfigure/solr/SolrAutoConfiguration.class]中定义名称为“solrClient”的bean创建错误:通过工厂方法实例化bean失败的;嵌套异常是 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 但有问题。

【问题讨论】:

    标签: java spring solr apache-kafka


    【解决方案1】:
    @SpringBootApplication(exclude = SolrAutoConfiguration.class)
    public class Application {
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
        }
    }
    

    禁用SolrAutoConfiguration,它可能会起作用

    【讨论】:

      猜你喜欢
      • 2019-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-17
      • 2019-12-16
      • 2013-09-07
      相关资源
      最近更新 更多