无法升级到Couchbase Java客户端2.6.1

时间:2018-07-30 09:27:51

标签: java couchbase

将couchbase java-client升级到2.6.1之后,在应用程序启动时出现以下错误:

exception is java.lang.NoClassDefFoundError: com/couchbase/client/encryption/CryptoManager

快速调查后,发现它支持字段级加密was added since 2.6.0

问题似乎是以下传递依赖项:

   <dependency>
        <groupId>com.couchbase.client</groupId>
        <artifactId>encryption</artifactId>
        <version>${encryptionextension.version}</version>
        <optional>true</optional>
    </dependency>

标记为可选,但是它在DefaultCouchbaseEnvironment中声明,因此不能为可选。

此问题的快速解决方案是将“加密”传递依赖项显式添加到类路径。但是,这似乎是一个错误,它将迫使所有客户端遇到相同的问题。

更新 重现此问题的最简单方法是调用以下代码:

DefaultCouchbaseEnvironment.class.getDeclaredMethods();

当将coucbase环境作为spring bean加载时,spring会调用此代码。我设法将问题隔离到导致问题的单行代码中。

0 个答案:

没有答案