Datastax Java驱动程序4.6.1无法使用application.conf覆盖配置

问题描述

我在src.main.resources文件夹中创建了application.conf:

datastax-java-driver {
  basic {
    request {
      default-idempotence = true
      timeout = 5
    }
  }
  advanced {
    connection {
      max-requests-per-connection = 32767
    }
  }
}

这些只是一些测试属性,我不认为这些属性会被应用,因为当我在调试器中四处查看时,认值未更改。

有什么想法吗?如何检查自定义属性是否被应用?

解决方法

如果使用Maven,则已将其正确放置在src/main/resources文件夹中。否则,它需要进入应用程序的类路径。

,

@ThatHansel,

您能否显示类似于以下内容的输出,以了解您从程序中获得的值?

我有一个利用DataStax Java驱动程序4.9.0的示例类,并且正在打印值。我在这里使用默认值进行演示。

import java.net.InetSocketAddress;

import com.datastax.oss.driver.api.core.CqlSession;
import com.datastax.oss.driver.api.core.config.DefaultDriverOption;

public class DriverConfigsDemo {
    public static void main(String... args) {
    try (CqlSession session = CqlSession.builder().addContactPoint(new InetSocketAddress("localhost",9042))
        .withLocalDatacenter("dc1").build()) {// update to match your environment
        System.out.println("Driver Configs - Idempotence: " + session.getContext().getConfig().getDefaultProfile().getString(DefaultDriverOption.REQUEST_DEFAULT_IDEMPOTENCE));
        System.out.println("Driver Configs -     Timeout: " + session.getContext().getConfig().getDefaultProfile().getDuration(DefaultDriverOption.REQUEST_TIMEOUT));
    }
    }
}

当我运行此程序时,我得到以下内容,并且您的情况还应该看到相似(即幂等为 true 和超时为 PT5S ),

09:56:10.019 [main] INFO  c.d.o.d.i.c.DefaultMavenCoordinates - DataStax Java driver for Apache Cassandra(R) (com.datastax.oss:java-driver-core) version 4.9.0
09:56:10.574 [s0-admin-0] INFO  c.d.o.d.internal.core.time.Clock - Using native clock for microsecond precision
Driver Configs - Idempotence: false
Driver Configs -     Timeout: PT2S