访问Clojure中的infinispan .class

时间:2017-06-02 15:56:34

标签: clojure infinispan infinispan-9

我正在尝试在Clojure中复制the Infinispan documentation的一段代码:

ConfigurationBuilder b = new ConfigurationBuilder();
b.persistence()
  .addStore(SoftIndexFileStoreConfigurationBuilder.class)
  .indexLocation("/tmp/sifs/testCache/index");
  .dataLocation("/tmp/sifs/testCache/data")

这是我的尝试:

(import '[org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfigurationBuilder])
(import '[org.infinispan.configuration.cache ConfigurationBuilder])

(def b (ConfigurationBuilder.))

(.addStore (.persistence b)
           (class org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfigurationBuilder))

;; java.lang.ClassNotFoundException: org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfigurationBuilder

如何通过此例外?这是SIFS source

1 个答案:

答案 0 :(得分:4)

对于您的情况,您应该拥有依赖项:

:dependencies  ... others here ...
               [org.infinispan/infinispan-core "9.0.1.Final"]
               [org.infinispan/infinispan-persistence-soft-index "9.0.1.Final"]

此外,您错误地使用了import。你可以这样做:

(import full.package.name.ClassNameHere)

(import [full.package.name ClassNameOne ClassNameTwo])

对于你的情况,你应该这样做:

(import org.infinispan.persistence.sifs.configuration.SoftIndexFileStoreConfigurationBuilder)

请注意,与require不同,nil结果表示“一切都很好”,import nil返回表示“未导入任何内容。”