我試圖通過Titan-Node連接到由Cassandra(通過Rexster Titan-Server包安裝)支持的Titan。找不到實現類:「cassandra」
我的錯誤...
java.lang.IllegalArgumentException異常:找不到實現 類: 「卡桑德拉」
...當我運行下面的代碼.. ..
var Titan = require('titan-node');
var gremlin = new Titan.Gremlin({ loglevel: 'OFF' });
var TitanFactory = gremlin.java.import('com.thinkaurelius.titan.core.TitanFactory');
var graph = TitanFactory.openSync('titan.config');
配置:
storage.directory = "/tmp/titan"
storage.backend = "cassandra"
storage.hostname = "127.0.0.1"
storage.port = 9160
任何想法?
我似乎在Titan安裝文件夾中以及Titan-Node軟件包中的目標/依賴關係文件夾中都具有必需的.jar。
爲什麼Java不能找到文件?是否存在缺少的類路徑條目?如果是這樣,它需要爲數據庫或節點設置?我認爲這將是節點,因爲這是試圖加載類的應用程序。
編輯
丹的建議,給了我....
「java.lang.IllegalArgumentException異常:找不到實現 類: 「com.thinkaurelius.titan.diskstorage.cassandra .thrift.CassandraThriftStoreManager「」
......還有......
'java.lang.IllegalArgumentException異常:找不到實現 類: 「com.thinkaurelius.titan.diskstorage.cassandra.astyanax.AstyanaxStoreManager」'
...分別。
事實上,無論您在配置中設置了哪個值storage.backend
,這都是該類的名稱,它找不到在異常消息中報告的實現。
如果你在這裏的代碼看起來...
...的instantiate
方法時拋出異常使用方法參數clazzname
這是由呼叫傳遞的消息中getImplementationClass
。後者應該通過storage.backend
中的鍵集來查找類加載,但奇怪的是,它似乎沒有找到任何東西,因此它使用該值。即使如此,即使直接設置它也無法找到課程。所以這裏還有一個謎團。
我想我必須經過雷克斯特斯,直到這是固定的。
檢查https://github.com/inolen/titan-node/issues/9。這是自6月19日以來的一個已知問題,但似乎沒有人關心。 – 2014-09-01 08:34:08
我[對問題發表了評論](https://github.com/inolen/titan-node/issues/9#issuecomment-54035406)。如果將storage.backend設置爲com.thinkaurelius.titan.diskstorage.cassandra.thrift.CassandraThriftStoreManager或com.thinkaurelius.titan.diskstorage.cassandra.astyanax.AstyanaxStoreManager,會發生什麼情況?不是一個真正的答案或修復,但可能是一種解決方法。 – 2014-09-01 08:49:43
@DanLaRocque我已經更新了這個問題。 – 2014-09-01 16:10:22