Messaggi di errore che utilizzano lampadine / Python e Neo4J 2.0
Domanda
Usando NEO4J 2.0 e Python 2.7.6 - Ho provato a eseguire diversi script basati sul pacchetto lampadina, ma continua a ricevere i seguenti errori:
Traceback (most recent call last):
File "D:/neo4jdb/testingbulbs2.7", line 8, in <module>
james = g.vertices.create(name="James")
File "C:\Python27\lib\site-packages\bulbs\element.py", line 565, in create
resp = self.client.create_vertex(data, keys=_keys)
File "C:\Python27\lib\site-packages\bulbs\neo4jserver\client.py", line 424, in create_vertex
return self.create_indexed_vertex(data, index_name, keys=keys)
File "C:\Python27\lib\site-packages\bulbs\neo4jserver\client.py", line 1027, in create_indexed_vertex
return self.gremlin(script,params)
File "C:\Python27\lib\site-packages\bulbs\neo4jserver\client.py", line 384, in gremlin
return self.request.post(path, params)
File "C:\Python27\lib\site-packages\bulbs\rest.py", line 128, in post
return self.request(POST, path, params)
File "C:\Python27\lib\site-packages\bulbs\rest.py", line 183, in request
return self.response_class(http_resp, self.config)
File "C:\Python27\lib\site-packages\bulbs\neo4jserver\client.py", line 217, in __init__
self.handle_response(response)
File "C:\Python27\lib\site-packages\bulbs\neo4jserver\client.py", line 249, in handle_response
response_handler(response)
File "C:\Python27\lib\site-packages\bulbs\rest.py", line 39, in not_found
raise LookupError(http_resp)
LookupError: ({'status': '404', 'access-control-allow-origin': '*', 'content-type': 'application/json; charset=UTF-8', 'content-length': '838', 'server': 'Jetty(9.0.z-SNAPSHOT)'}, '{\r\n "message" : "No such ServerPlugin: \\"GremlinPlugin\\"",\r\n "exception" : "PluginLookupException",\r\n "fullname" : "org.neo4j.server.plugins.PluginLookupException",\r\n "stacktrace" : [ "org.neo4j.server.plugins.PluginManager.extension(PluginManager.java:124)", "org.neo4j.server.plugins.PluginManager.invoke(PluginManager.java:165)", "org.neo4j.server.rest.web.ExtensionService.invokeGraphDatabaseExtension(ExtensionService.java:312)", "org.neo4j.server.rest.web.ExtensionService.invokeGraphDatabaseExtension(ExtensionService.java:134)", "java.lang.reflect.Method.invoke(Unknown Source)", "org.neo4j.server.rest.transactional.TransactionalRequestDispatcher.dispatch(TransactionalRequestDispatcher.java:132)", "org.neo4j.server.rest.security.SecurityFilter.doFilter(SecurityFilter.java:112)", "java.lang.Thread.run(Unknown Source)" ]\r\n}')
.
Ho notato che ci sono ulteriori caratteri EOL in alcuni dei messaggi di errore.Potrebbe essere il problema?
Soluzione
Il messaggio di errore afferma: "No Tale ServerPlugin: GremlinPlugin".
In Neo4j 2.0 Il plugin di Gremlin è stato rimosso dal prodotto principale e deve essere installato separatamente, troverai la fonte a https://github.com/neo4j-contrib/gremlin-plugin .
Tuttavia sembra che i progetti, di cui dipende Gremlin-Plugin dipende, non è ancora disponibile per NEO4J 2.0.
Quindi, a meno che tu non si vuole sporcare le mani con fonti di Blueprint e Gremlin-Plugin, potresti stare meglio usando NEO4J 1.9.5.
Altri suggerimenti
Gremlin lavorerà con NEO4J 2.0, anche se attualmente ci vuole un po 'di scherzi (vedere le istruzioni di seguito).Presumibilmente la prossima versione TinkerPop questa primavera renderà più facile.NEO4J 2.0 ha aggiornamenti molto utili alla lingua di Cypher.Consiglierei di usarlo, non una versione precedente.
git clone https://github.com/tinkerpop/gremlin.git
cd gremlin/gremlin-groovy/
[edit gremlin/gremlin-groovy/pom.xml to uncomment <!--dependency> block containing neo4j2 and comment out neo4j block]
[also edit same file so that neo4j2 block has <scope>compile</scope> (I don't know that this is strictly necessary)]
'mvn clean install' in gremlin/ directory
executable is gremlin/gremlin-groovy/gremlin.sh
If you get an error like:
"groovysh_evaluate: 51: unable to resolve class Neo4jGraph"
use the Neo4j2Graph class like this:
g = new Neo4j2Graph("/usr/local/neo4j-community-2.0.1/data/graph.db")
.