NoSuchMethodError Couchbase 2.5.8 Ошибка запуска Spring Boot - PullRequest
0 голосов
/ 18 мая 2018

Мы используем Couchbase DB в нашем загрузочном приложении Spring (Microservice), и оно выдает NoSuchMethodError во время запуска в PCF, и происходит сбой приложения

Используемый пакет Couchbase SDK 2.5.8

            <dependency>
                <groupId>com.couchbase.client</groupId>
                <artifactId>java-client</artifactId>
                <version>2.5.8</version>
            </dependency>

и версия RxJava 1.1.10.

Создание CouchbaseEnvironment с использованием следующего фрагмента кода

            CouchbaseEnvironment env = DefaultCouchbaseEnvironment.builder()
            .sslEnabled(true).bootstrapHttpSslPort(18091)
            .sslKeystoreFile(Preconditions.checkNotNull(environment.getProperty("couchbase.ssl.keystore")))
            .sslKeystorePassword(Preconditions.checkNotNull(environment.getProperty("couchbase.ssl.keystore.password")))
            .connectTimeout(50000)
            .kvTimeout(50000)
            .build();

И получаем следующее исключение:

            2018-05-18T16:02:56.889+05:30 [APP/PROC/WEB/0] [OUT] Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.couchbase.client.java.env.DefaultCouchbaseEnvironment]: Factory method 'couchbaseEnvironment' threw exception; nested exception is java.lang.NoSuchMethodError: com.couchbase.client.java.env.DefaultCouchbaseEnvironment$Builder.kvEndpoints(I)Lcom/couchbase/client/java/env/DefaultCouchbaseEnvironment$Builder;
            2018-05-18T16:02:56.889+05:30 [APP/PROC/WEB/0] [OUT] at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189) ~[spring-beans-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
            2018-05-18T16:02:56.889+05:30 [APP/PROC/WEB/0] [OUT] at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588) ~[spring-beans-4.3.12.RELEASE.jar!/:4.3.12.RELEASE]
            2018-05-18T16:02:56.889+05:30 [APP/PROC/WEB/0] [OUT] ... 26 common frames omitted
            2018-05-18T16:02:56.889+05:30 [APP/PROC/WEB/0] [OUT] Caused by: java.lang.NoSuchMethodError: com.couchbase.client.java.env.DefaultCouchbaseEnvironment$Builder.kvEndpoints(I)Lcom/couchbase/client/java/env/DefaultCouchbaseEnvironment$Builder;
            2018-05-18T16:02:56.889+05:30 [APP/PROC/WEB/0] [OUT] at org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration$CouchbaseConfiguration.initializeEnvironmentBuilder(CouchbaseAutoConfiguration.java:102) ~[spring-boot-autoconfigure-1.5.8.RELEASE.jar!/:1.5.8.RELEASE]
            2018-05-18T16:02:56.889+05:30 [APP/PROC/WEB/0] [OUT] at org.springframework.boot.autoconfigure.couchbase.CouchbaseAutoConfiguration$CouchbaseConfiguration.couchbaseEnvironment(CouchbaseAutoConfiguration.java:64) ~[spring-boot-autoconfigure-1.5.8.RELEASE.jar!/:1.5.8.RELEASE]

Пробовал использовать также зависимость, доступную при загрузке Spring, но затем получал исключение Time Out.

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-couchbase</artifactId>
            </dependency>

Корзина Couchbase создается как Сервис в PCF и Связывается с сервисом.

            [org/springframework/boot/autoconfigure/couchbase/CouchbaseAutoConfiguration$CouchbaseConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.couchbase.client.java.Bucket]: Factory method 'couchbaseClient' threw exception; nested exception is java.lang.RuntimeException: java.util.concurrent.TimeoutException
            2018-05-18T12:46:22.497+05:30 [APP/PROC/WEB/0] [OUT] 2018-May-18 07:16:22.496 WARN [cb-io-1-1] c.c.c.c.e.Endpoint - [null][KeyValueEndpoint]: Generic Failure.
            2018-05-18T12:46:22.505+05:30 [APP/PROC/WEB/0] [OUT] 2018-May-18 07:16:22.504 WARN [cb-io-1-1] c.c.c.c.e.Endpoint - null
            2018-05-18T12:46:22.520+05:30 [APP/PROC/WEB/0] [OUT] 2018-May-18 07:16:22.519 WARN [cb-io-1-1] c.c.c.d.i.n.u.c.DefaultPromise - An exception was thrown by com.couchbase.client.core.endpoint.AbstractEndpoint$4$1.operationComplete()

Любая помощь с благодарностью.

Ответы [ 2 ]

0 голосов
/ 17 августа 2018

Проблема связана с зависимостями Spring Cloud.В нашей организации произошло обновление PCF до последней версии Spring Cloud Dependencies, и как только я обновил ее до последней версии, она работала нормально

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.RC2</spring-cloud.version>
    </properties>

Ранее я использовал следующую версию

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Dalston.SR4</spring-cloud.version>
    </properties>

Как только я обновил эти зависимости, он начал работать.

0 голосов
/ 28 мая 2018

Вам также может потребоваться обновить core-io до 1.5.6 или более поздней версии.

<dependency>
    <groupId>com.couchbase.client</groupId>
    <artifactId>core-io</artifactId>
    <version>1.5.8</version>
</dependency>

NoSuchMethodError выброшено, поскольку это изменение было совершено.

Смотрите также: https://issues.couchbase.com/browse/JVMCBC-495

...