首页 文章

Spring Boot:Couchbase 5.0.1 - 无法连接到couchbaseDB

提问于
浏览
1

我是couchbaseDB的新手,当我将couchbaseDB升级到5.0.1时遇到了将Spring启动应用程序连接到数据库的问题 .

这是我的配置:

CouchbaseConfig.java

@Configuration
public class CouchbaseConfig {

   @Value("${spring.couchbase.bootstrap-hosts:localhost}")
   private String couchbaseUri;

   @Value("${spring.data.couchbase.bucket.name}")
   private String bucketName;

   public Cluster cluster() {
      return CouchbaseCluster.create(couchbaseUri).authenticate("user","password");
   }

   public Bucket bucket() {
      return cluster().openBucket(bucketName);
   }

我能够打开我创建的存储桶,但由于异常而立即关闭,它总是询问数据库中不存在的“默认”存储桶密码 . 这是错误日志:

Error Log:

org.springframework.beans.factory.BeanCreationException:在类路径资源中定义名为'couchbaseClient'的bean时出错[org / springframework / boot / autoconfigure / couchbase / CouchbaseAutoConfiguration $ CouchbaseConfiguration.class]:通过工厂方法的Bean实例化失败;嵌套异常是org.springframework.beans.BeanInstantiationException:无法实例化[com.couchbase.client.java.Bucket]:工厂方法'couchbaseClient'抛出异常;嵌套异常是com.couchbase.client.java.error.InvalidPasswordException:存储桶"default"的密码不匹配 . 在org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:599)〜[spring-beans-4.3.13.RELEASE.jar:4.3.13.RELEASE] org.springframework.beans.factory . org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java)中的support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1173)〜[spring-beans-4.3.13.RELEASE.jar:4.3.13.RELEASE] :1067)〜[spring-beans-4.3.13.RELEASE.jar:4.3.13.RELEASE] org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)〜[spring-beans- 4.3.13.RELEASE.jar:4.3.13.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)〜[spring-beans-4.3.13.RELEASE.jar:4.3 .13.RELEASE]在org.springframework.beans.factory.support.Abstr actBeanFactory $ 1.getObject(AbstractBeanFactory.java:306)〜[spring-beans-4.3.13.RELEASE.jar:4.3.13.RELEASE] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java: 230)〜[spring-beans-4.3.13.RELEASE.jar:4.3.13.RELEASE] org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)〜[spring-beans-4.3 .13.RELEASE.jar:4.3.13.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)~ [spring-beans-4.3.13.RELEASE.jar:4.3 . 13.RELEASE] org.springframework上的org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:296)〜[spring-beans-4.3.13.RELEASE.jar:4.3.13.RELEASE] . bean.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)〜[spring-beans-4.3.13.RELEASE.jar:4.3.13.RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons (德发ultListableBeanFactory.java:761)〜[spring-beans-4.3.13.RELEASE.jar:4.3.13.RELEASE] org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)〜[spring-context -4.3.13.RELEASE.jar:4.3.13.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)〜[spring-context-4.3.13.RELEASE.jar:4.3 . 13.RELEASE] org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)[spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE] org.springframework.boot.SpringApplication.refreshContext (SpringApplication.java:360)[spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE] org.springframework.boot.SpringApplication.run(SpringApplication.java:303)[spring-boot-1.5 . 9.RELEASE.jar:1.5.9.RELEASE] org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)[spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE] at org .springframework.boot.SpringApplication.run(SPRIN gApplication.java:1107)[spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE] at com.sample.project.api.ProjectApiApplication.main(ProjectApiApplication.java:10)[classes /:na] Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.couchbase.client.java.Bucket]: Factory method 'couchbaseClient' threw exception; nested exception is com.couchbase.client.java.error.InvalidPasswordException: Passwords for bucket "default" do not match. at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189)〜[spring-beans-4.3.13.RELEASE.jar:4.3.13.RELEASE] atorg.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588)〜[spring-beans-4.3.13.RELEASE.jar:4.3.13.RELEASE] ... 19个常用帧省略引起: com.couchbase.client.java.error.InvalidPasswordException:存储桶"default"的密码不匹配 . 在com.couchbase.client.java.CouchbaseAsyncCluster $ OpenBucketErrorHandler.call(CouchbaseAsyncCluster.java:644)〜[Java的客户机 - 2.5.3.jar:NA]在com.couchbase.client.java.CouchbaseAsyncCluster $ OpenBucketErrorHandler.call( CouchbaseAsyncCluster.java:627)〜[Java的客户机 - 2.5.3.jar:NA]在rx.internal.operators.OperatorOnErrorResumeNextViaFunction $ 4.onError(OperatorOnErrorResumeNextViaFunction.java:140)〜[rxjava-1.3.3.jar:1.3 . 3] at rx.internal.operators.OnSubscribeMap $ MapSubscriber.onError(OnSubscribeMap.java:88)〜[rxjava-1.3.3.jar:1.3.3] at rx.observers.Subscribers $ 5.onError(Subscribers.java:230 )〜[rxjava-1.3.3.jar:1.3.3] at rx.internal.operators.OperatorObserveOn $ ObserveOnSubscriber.checkTerminated(OperatorObserveOn.java:273)〜[rxjava-1.3.3.jar:1.3.3] at rx .internal.operators.OperatorObserveOn $ ObserveOnSubscriber.call(OperatorObserveOn.java:216)〜[rxjava-1.3.3.jar:1.3.3]在rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)〜[ java.util.concurrent.Exe中的rxjava-1.3.3.jar:1.3.3] java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask中java.util.concurrent.FutureTask.run(未知来源)〜[na:1.8.0_131]的cutors $ RunnableAdapter.call(未知来源)〜[na:1.8.0_131] . 在java.util.concurrent.ThreadPoolExecutor.runWorker(未知)访问$ java(未知来源)〜[na:1.8.0_131] java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run(未知来源)〜[na:1.8.0_131]来源)〜[na:1.8.0_131] java.util.concurrent.ThreadPoolExecutor $ Worker.run(未知来源)〜[na:1.8.0_131] at java.lang.Thread.run(Unknown Source)〜[na: 1.8.0_131]

我的问题是如何不打开“默认”存储桶并只打开我在couchbaseDB中创建的存储桶?我希望你能帮我解决这个问题 . 提前致谢 .

1 回答

  • 0

    除非我没有看到代码的重要部分,否则不应该发生这种情况 . 你使用哪个couchbase sdk版本?

    这是一个工作示例:

    CouchbaseCluster server = CouchbaseCluster.create("testServer");
    server.authenticate("user","password");
    Bucket testBucket = server.openBucket("testBucket");
    

    如果经过身份验证的用户(用户)可以访问它,则上面只会'successfully'打开 testBucket ,否则会抛出 InvalidPasswordException . 你不会在上面的代码中击中任何桶,而是 testBucket .

相关问题