找到cassandra.yaml

时间:2017-02-17 18:33:32

标签: cassandra config

对于我的硕士论文,我必须修改Cassandra的源代码。所以,正如https://wiki.apache.org/cassandra/HowToBuild所建议的,我git clone,然后运行ant,一切看起来都很好(我设法构建项目没有任何错误),但是当我运行unitTests(cassandra / test)时,我有这个奇怪的错误:

org.apache.cassandra.exceptions.ConfigurationException: 
   Expecting URI in variable: [cassandra.config]. 
   Found[cassandra.yaml]. 
   Please prefix the file with [file:\\\] for local files and 
      [file:\\<server>\] for remote files. 
   If you are executing this from an external tool, it needs 
   to set Config.setClientMode(true) to avoid loading configuration.

at org.apache.cassandra.config.YamlConfigurationLoader.getStorageConfigURL(YamlConfigurationLoader.java:80)
    at org.apache.cassandra.config.YamlConfigurationLoader.loadConfig(YamlConfigurationLoader.java:100)
    at org.apache.cassandra.config.DatabaseDescriptor.loadConfig(DatabaseDescriptor.java:252)
    at org.apache.cassandra.config.DatabaseDescriptor.daemonInitialization(DatabaseDescriptor.java:131)
    at org.apache.cassandra.auth.jmx.AuthorizationProxyTest.setup(AuthorizationProxyTest.java:48)"

我想用unitTests测试我对源代码的修改(因为我没有找到任何关于如何从Windows上的源代码设置cassandra的教程,所以如果你有一个,我希望有链接^^)但我没有设法找到任何解决这个错误:(。任何人都知道这个问题的解决方案?

我正在使用IntelliJ在Windows 10上工作,我已将我的Jdk和ant更新到最新版本。

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。那些变量(“cassandra.config”,“cassandra.storagedir”等等) 系统变量

您可以通过执行以下操作在代码中设置它们:

System.setProperty("cassandra.config", "file:///<PATH>/cassandra.yaml");

您还可以在运行jar文件时设置它们:

 
java -Dcassandra.config=file:///<PATH>/cassandra.yaml -jar <JAR>

最佳,

沙比尔

答案 1 :(得分:0)

在jdk 1.8中启动一个新进程,并在其中启动嵌入式cassandra。并在Java版本中运行junit。我遇到了类似的问题,jdk11进行了升级。现在我解决了这个问题。

import org.cassandraunit.utils.EmbeddedCassandraServerHelper;

导入org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class EmbeddedCassandraApplication {
    public static void main(String[] args) throws Exception {
        EmbeddedCassandraServerHelper.startEmbeddedCassandra("cassandra-test.yaml");
    }
}