java - 使用 Azul jdk 11 运行嵌入式 cassandra 时出现 AccessDeniedException

标签 java cassandra

我尝试使用 Azul JDK 11 中的 cassandra-unit 库和 Gradle 项目运行嵌入式 Cassandra,并出现以下 AccessDenindException。我已经检查了 build 文件夹的权限,它不是只读的,并且已经有一些文件。项目中没有任何其他可能导致问题的内容。

org.apache.cassandra.io.FSWriteError: java.nio.file.AccessDeniedException: build\embeddedCassandra\commitlog\CommitLog-6-1642719269564.log
    at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:143)
    at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:160)
    at org.apache.cassandra.db.commitlog.CommitLogSegment.discard(CommitLogSegment.java:409)

Java 类

EmbeddedCassandraServerHelper.startEmbeddedCassandra();

build.gradle

testCompile 'org.cassandraunit:cassandra-unit:4.3.1.0'
testCompile 'com.datastax.oss:java-driver-core:4.13.0'

最佳答案

这里并没有发生任何神奇的事情,因为 Cassandra 只是使用 Java IO 实用程序,因此这是一个低级文件系统问题。

要检查的事情之一是目录中的现有提交日志是否由 Cassandra 进程无权访问的其他用户拥有。例如,CommitLog-6-1642719269564.logroot 所有,但 C* 进程与 cassandra 一起运行。如果是这样,您将需要更改文件所有权。干杯!

[更新] 仅 Cassandra 4.x 支持 Java 11。早期版本的 Cassandra 仅适用于 Java 8。

关于java - 使用 Azul jdk 11 运行嵌入式 cassandra 时出现 AccessDeniedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70794850/

相关文章:

java - 你如何在java swing包中制作一个专栏

java - 通过 CellReference 检索的 Apache POI Cell 和 Row 为 Null

java - MVP 中 View 和 Presenter 之间的通信模式是什么?

cassandra - Cassandra 是否能够检测不经常使用的损坏数据?

cassandra - 获取 cassandra 表创建日期

java - JSoup 在 Android 上的行为与在 PC 上的行为不同?

c# - Java 有类似 C# 的 ref 和 out 关键字吗?

java - 如何将 java.lang.ClassCastException : cannot assign instance of scala. collection.immutable.List 修复为字段类型 scala.collection.Seq?

Cassandra 如何模拟 join 语句

cassandra - 在每个 Cassandra 节点上拥有 100% 的所有权是否可以接受?