升级到couchbase java客户端2.6.1时出现问题
将couchbase java客户端升级到2.6.1后,在应用程序启动时出现以下错误:升级到couchbase java客户端2.6.1时出现问题,java,couchbase,Java,Couchbase,将couchbase java客户端升级到2.6.1后,在应用程序启动时出现以下错误: exception is java.lang.NoClassDefFoundError: com/couchbase/client/encryption/CryptoManager 经过快速调查后,似乎需要对字段级加密的支持 问题似乎是以下可传递依赖项: <dependency> <groupId>com.couchbase.client</groupId
exception is java.lang.NoClassDefFoundError: com/couchbase/client/encryption/CryptoManager
经过快速调查后,似乎需要对字段级加密的支持
问题似乎是以下可传递依赖项:
<dependency>
<groupId>com.couchbase.client</groupId>
<artifactId>encryption</artifactId>
<version>${encryptionextension.version}</version>
<optional>true</optional>
</dependency>
当将coucbase环境作为Springbean加载时,spring会调用此代码。我已设法将问题隔离到导致问题的单行代码。是的,可选依赖项是作为2.6.0的一部分添加的,不应该创建CryptoManager类的实例。是否可以共享重现问题的示例代码?当然可以,您可以联系subhashni@couchbase.com.Note我们不能这样指责它。你是偶然使用Spring的吗?Spring使用反射进行bean实例化,我们认为这会导致类加载。因此maven并不是真的不正确,但是使用框架进行反射导致了类加载尝试。即使这个问题仅在这种情况下是可复制的,考虑到spring的广泛应用,当前使用这个新特性的方法应该考虑到这个问题,我们没有使用spring数据。只是java客户机和spring核心。这是否意味着我必须显式地添加加密依赖项?这是否表明加密依赖项不应该是可选的,以便无论客户机如何使用都能正常工作?
DefaultCouchbaseEnvironment.class.getDeclaredMethods();