Не удается заставить Rexster работать с Orient-DB - какая-то ошибка разрешения / входа пользователя?
Я установил Orient-DB 2.0.2 и запустил его. Я могу получить к нему доступ через http://localhost:2480/ и получить доступ к демонстрационной базе данных "GratefulDeadConcerts" с пользователем "admin" и паролем "admin".
Я установил Rexster Server 2.6.0. Используя конфигурацию по умолчанию, я могу получить доступ к некоторым демонстрационным базам данных через http://localhost:8182/ и 'the dog house'.
Я скопировал "orientdb-client-2.0.2.jar" и "orientdb-enterprise-2.0.2.jar" в папку "ext" Rexsters, согласно инструкциям, которые я нашел. Во время тестирования неисправностей, приведенного ниже, я скопировал каждый файл jar из папки lib библиотеки Orient-DB в папку ext 'Rexsters (ответом был другой вопрос от stackru).
Затем я отредактировал файл rexster.xml (после остановки сервера) и вставил следующее (я также отключил демонстрации)...
<graph>
<graph-name>orientdbsample</graph-name>
<graph-enabled>true</graph-enabled>
<graph-type>com.tinkerpop.rexster.OrientGraphConfiguration</graph-type>
<graph-location>plocal:E:/DATABASES/orientdb-community-2.0.2/databases/GratefulDeadConcerts</graph-location>
<properties>
<username>admin</username>
<password>admin</password>
</properties>
<extensions>
<allows>
<allow>tp:gremlin</allow>
</allows>
</extensions>
</graph>
После перезапуска сервера Rexster выводится следующее...
[INFO] Application - .:Welcome to Rexster:.
[INFO] RexsterProperties - Using [E:\DATABASES\rexster-server-2.6.0\config\rexst
er.xml] as configuration source.
[INFO] Application - Rexster is watching [E:\DATABASES\rexster-server-2.6.0\conf
ig\rexster.xml] for change.
[WARN] GraphConfigurationContainer - Could not load graph orientdbsample. Please
check the XML configuration.
[WARN] GraphConfigurationContainer - GraphConfiguration could not be found or ot
herwise instantiated: [com.tinkerpop.rexster.OrientGraphConfiguration]. Ensure t
hat it is in Rexster's path.
com.tinkerpop.rexster.config.GraphConfigurationException: GraphConfiguration cou
ld not be found or otherwise instantiated: [com.tinkerpop.rexster.OrientGraphCon
figuration]. Ensure that it is in Rexster's path.
at com.tinkerpop.rexster.config.GraphConfigurationContainer.getGraphFrom
Configuration(GraphConfigurationContainer.java:142)
at com.tinkerpop.rexster.config.GraphConfigurationContainer.<init>(Graph
ConfigurationContainer.java:54)
at com.tinkerpop.rexster.server.XmlRexsterApplication.reconfigure(XmlRex
sterApplication.java:99)
at com.tinkerpop.rexster.server.XmlRexsterApplication.<init>(XmlRexsterA
pplication.java:47)
at com.tinkerpop.rexster.Application.<init>(Application.java:97)
at com.tinkerpop.rexster.Application.main(Application.java:189)
Caused by: com.tinkerpop.rexster.config.GraphConfigurationException: Check graph
configuration. Missing or empty configuration element: graph-location
at com.tinkerpop.rexster.OrientGraphConfiguration.configureGraphInstance
(OrientGraphConfiguration.java:64)
at com.tinkerpop.rexster.config.GraphConfigurationContainer.getGraphFrom
Configuration(GraphConfigurationContainer.java:124)
... 5 more
[WARN] GraphConfigurationContainer - Check graph configuration. Missing or empty
configuration element: graph-location
com.tinkerpop.rexster.config.GraphConfigurationException: Check graph configurat
ion. Missing or empty configuration element: graph-location
at com.tinkerpop.rexster.OrientGraphConfiguration.configureGraphInstance
(OrientGraphConfiguration.java:64)
at com.tinkerpop.rexster.config.GraphConfigurationContainer.getGraphFrom
Configuration(GraphConfigurationContainer.java:124)
at com.tinkerpop.rexster.config.GraphConfigurationContainer.<init>(Graph
ConfigurationContainer.java:54)
at com.tinkerpop.rexster.server.XmlRexsterApplication.reconfigure(XmlRex
sterApplication.java:99)
at com.tinkerpop.rexster.server.XmlRexsterApplication.<init>(XmlRexsterA
pplication.java:47)
at com.tinkerpop.rexster.Application.<init>(Application.java:97)
at com.tinkerpop.rexster.Application.main(Application.java:189)
[INFO] GraphConfigurationContainer - Graph tinkergraph - not enabled and not lo
aded.
[INFO] GraphConfigurationContainer - Graph tinkergraph-readonly - not enabled a
nd not loaded.
[INFO] GraphConfigurationContainer - Graph gratefulgraph - not enabled and not
loaded.
[INFO] HttpReporterConfig - Configured HTTP Metric Reporter.
[INFO] ConsoleReporterConfig - Configured Console Metric Reporter.
[INFO] HttpRexsterServer - HTTP/REST thread pool configuration: kernal[4 / 4] wo
rker[8 / 8]
[INFO] HttpRexsterServer - Using org.glassfish.grizzly.strategies.LeaderFollower
NIOStrategy IOStrategy for HTTP/REST.
[INFO] HttpRexsterServer - Rexster Server running on: [http://localhost:8182]
[INFO] RexProRexsterServer - Using org.glassfish.grizzly.strategies.LeaderFollow
erNIOStrategy IOStrategy for RexPro.
[INFO] RexProRexsterServer - RexPro thread pool configuration: kernal[4 / 4] wor
ker[8 / 8]
[INFO] RexProRexsterServer - Rexster configured with no security.
[INFO] RexProRexsterServer - RexPro Server bound to [0.0.0.0:8184]
[INFO] ShutdownManager$ShutdownSocketListener - Bound shutdown socket to /127.0.
0.1:8183. Starting listener thread for shutdown requests.
Я пробовал различные настройки для графика, но ничего не работает (и вся документация указывает, что мой конфиг правильный).
В качестве теста я изменяю расположение графика на "testdb" (вместо "GratefulDeadConcerts"). После запуска сервера Rexster выдает следующее, и база данных создается вместе с существующей базой данных 'GratefulDeadConcerts'.
[INFO] Application - .:Welcome to Rexster:.
[INFO] RexsterProperties - Using [E:\DATABASES\rexster-server-2.6.0\config\rexst
er.xml] as configuration source.
[INFO] Application - Rexster is watching [E:\DATABASES\rexster-server-2.6.0\conf
ig\rexster.xml] for change.
[INFO] RexsterApplicationGraph - Graph [orientdbsample] - configured with allowa
ble namespace [tp:gremlin]
[INFO] GraphConfigurationContainer - Graph orientdbsample - orientgraph[plocal:E
:/DATABASES/orientdb-community-2.0.2/databases/testdb] loaded
[INFO] GraphConfigurationContainer - Graph tinkergraph - not enabled and not lo
aded.
[INFO] GraphConfigurationContainer - Graph tinkergraph-readonly - not enabled a
nd not loaded.
[INFO] GraphConfigurationContainer - Graph gratefulgraph - not enabled and not
loaded.
[INFO] HttpReporterConfig - Configured HTTP Metric Reporter.
[INFO] ConsoleReporterConfig - Configured Console Metric Reporter.
[INFO] HttpRexsterServer - HTTP/REST thread pool configuration: kernal[4 / 4] wo
rker[8 / 8]
[INFO] HttpRexsterServer - Using org.glassfish.grizzly.strategies.LeaderFollower
NIOStrategy IOStrategy for HTTP/REST.
[INFO] HttpRexsterServer - Rexster Server running on: [http://localhost:8182]
[INFO] RexProRexsterServer - Using org.glassfish.grizzly.strategies.LeaderFollow
erNIOStrategy IOStrategy for RexPro.
[INFO] RexProRexsterServer - RexPro thread pool configuration: kernal[4 / 4] wor
ker[8 / 8]
[INFO] RexProRexsterServer - Rexster configured with no security.
[INFO] RexProRexsterServer - RexPro Server bound to [0.0.0.0:8184]
[INFO] ShutdownManager$ShutdownSocketListener - Bound shutdown socket to /127.0.
0.1:8183. Starting listener thread for shutdown requests.
Все выглядит хорошо на основе вышеизложенного. Я остановился и запустил сервер, и это было то же самое. Затем я закрыл Rexster и подключился к базе данных testdb с помощью веб-приложения Orient-DB. Я вошел в систему с помощью пользователя admin:admin, и все выглядело хорошо. Затем я перезапустил сервер Rexster, но получил первую "ошибку", которую я разместил выше (та же ошибка, что и база данных "GratefulDeadConcerts").
Я не знаю, что не так. Кто-нибудь знает?
Просто подумал, что упомяну, что я использую Windows 7 x64 и установил Java jdk1.8.0_31.
1 ответ
Я столкнулся с той же ошибкой и после некоторого поиска обнаружил тонкий дефект документации. В orientdb wiki мы видим следующий пример rexter.xml:
...
<graph-type>orientgraph</graph-type>
<graph-file>url-to-your-db</graph-file>
...
Внутри Rexter документация следующая:
...
<graph-type>com.tinkerpop.rexster.OrientGraphConfiguration</graph-type>
<graph-location>local:C:/data/graph/graph</graph-location>
...
Как вы можете видеть, второй тэг (graph-location) в этих документах, оригинальных документах Rexster (graph-location), является правильным. И я полагаю, что вы используете тег из orient docs, несмотря на то, что в части rexter.xml, которую вы здесь указали, правильно, потому что вы получаете предупреждение в стартовом журнале:
[WARN] GraphConfigurationContainer - Check graph configuration. Missing or empty
configuration element: graph-location
com.tinkerpop.rexster.config.GraphConfigurationException: Check graph configurat
ion. Missing or empty configuration element: graph-location
Запишите это местоположение и внимательно проверьте ваш конфигурационный файл.