Я пытаюсь подключиться к Titan, поддерживаемому Cassandra (установленным с пакетом Rexster Titan-Server) через Titan-Node.Не удалось найти класс реализации: «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');
Config:
storage.directory = "/tmp/titan"
storage.backend = "cassandra"
storage.hostname = "127.0.0.1"
storage.port = 9160
Любые идеи?
У меня, кажется, есть требуемый .jar в папке установки Titan, а также в папке target/dependency в пакете Titan-Node.
Почему Java не может найти файл? Есть ли отсутствующая запись в классе? Если так, то это нужно установить для базы данных или для узла? Я полагаю, что это будет узел, потому что это приложение пытается загрузить класс.
EDIT
предложение Дэн дал мне ....
«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. Это известная проблема с 19 июня, но никто, похоже, не заботится. –
Я [прокомментировал проблему] (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? Не совсем ответ или исправление, но, возможно, это обходное решение. –
@DanLaRocque Я обновил вопрос. –