我正在尝试使用 cassandra-unit 库运行嵌入式 Cassandra蓝色 JDK 11使用 Gradle 项目并获取以下 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();
构建.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.log
属于root
但 C* 进程正在运行cassandra
。如果是这样,您将需要更改文件所有权。干杯!
[UPDATE]仅 Cassandra 4.x 支持 Java 11。早期版本的 Cassandra 仅适用于 Java 8。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)