org.neo4j.server.webadmin throws ClassNotFoundException when accessed via gremlin webadmin

96 views
Skip to first unread message

Joel Hughes

unread,
May 30, 2012, 12:04:14 AM5/30/12
to ne...@googlegroups.com
Scenario
Java embedded neo4j exposed via WrappingNeoServerBootstrapper.
Working with neo4j 1.7-SNAPSHOT and Tinkerpop 1.2.
Upgraded to neo4j 1.8-SNAPSHOT and Tinkerpop 2.0.0
Java 1.6.0_32
Ubuntu 11.10 

Internally (java) the graph is working correctly. 

but accessing the gremlin webadmin  http://localhost:7474/webadmin/#/console/gremlin
produces the stack trace below.

Tinkerpop 2.0.0 removed 'pgm' from the blueprints class path. Neo4j 1.8 is working with Tinkerpop 2.0 with the  exception of the SessionFactory which appears to still be referencing the old classpath.


2012-05-29 23:35:17,328 ERROR [6361007@qtp-6414981-5] org.mortbay.log - /db/manage/server/console/
java.lang.NoClassDefFoundError: com/tinkerpop/blueprints/pgm/TransactionalGraph
at org.neo4j.server.webadmin.rest.SessionFactoryImpl$SessionCreator$1.newSession(SessionFactoryImpl.java:70) ~[neo4j-server-1.8-20120529.093631-106.jar:1.8-SNAPSHOT]
at org.neo4j.server.webadmin.rest.SessionFactoryImpl.getOrInstantiateSession(SessionFactoryImpl.java:57) ~[neo4j-server-1.8-20120529.093631-106.jar:1.8-SNAPSHOT]
at org.neo4j.server.webadmin.rest.SessionFactoryImpl.createSession(SessionFactoryImpl.java:48) ~[neo4j-server-1.8-20120529.093631-106.jar:1.8-SNAPSHOT]
at org.neo4j.server.webadmin.rest.ConsoleService.getSession(ConsoleService.java:132) ~[neo4j-server-1.8-20120529.093631-106.jar:1.8-SNAPSHOT]
at org.neo4j.server.webadmin.rest.ConsoleService.exec(ConsoleService.java:113) ~[neo4j-server-1.8-20120529.093631-106.jar:1.8-SNAPSHOT]


Peter Neubauer

unread,
May 30, 2012, 1:46:55 AM5/30/12
to ne...@googlegroups.com
Joel,
I will do soe first tests with Tinkerpop 2 this week I hope. However,
due to the package changes and some other refactorings, we will also
have to run regression tests that show we are not degrading
performance here. Blueprints is starting to not map 1:1 to Neo4j,
which means we need to be very careful not to just upgrade blindly -
production systems might be affected, plus Tinkerpop 2 is not
backwards compatible.

If you wanna upgrade in a branch and give me the address, we would be
grateful (it's the server and gremlin-plugin components), since I have
not much time this week. Thanks!

Cheers,

/peter neubauer

G:  neubauer.peter
S:  peter.neubauer
P:  +46 704 106975
L:   http://www.linkedin.com/in/neubauer
T:   @peterneubauer

If you can write, you can code - @coderdojomalmo
If you can sketch, you can use a graph database - @neo4j

Joel Hughes

unread,
May 30, 2012, 10:25:31 AM5/30/12
to ne...@googlegroups.com
Update
Recompiled neo4j with tinkerpop 2.0.0 and appropriate package import changes in:
server/rest/repr/ObjectToRepresentationConverter.java
server/webadmin/console/GremlinSession.java 

Results:
A server test fails:
Failed tests:   testGremlinVersion(org.neo4j.server.webadmin.console.GremlinSessionTest): expected:<[1.5](..)


When the tests are suppressed and the server jars are deployed, the gremlin webadmin no longer generates any exceptions, but it also does not work - no prompt is generated. 

Hope this saves you some time.

If there is another component that I could look at for you, let me know. 

Thanks
Joel


On Wednesday, May 30, 2012 1:46:55 AM UTC-4, Peter Neubauer wrote:
Joel,
I will do soe first tests with Tinkerpop 2 this week I hope. However,
due to the package changes and some other refactorings, we will also
have to run regression tests that show we are not degrading
performance here. Blueprints is starting to not map 1:1 to Neo4j,
which means we need to be very careful not to just upgrade blindly -
production systems might be affected, plus Tinkerpop 2 is not
backwards compatible.

If you wanna upgrade in a branch and give me the address, we would be
grateful (it's the server and gremlin-plugin components), since I have
not much time this week. Thanks!

Cheers,

/peter neubauer

G:  neubauer.peter
S:  peter.neubauer
P:  +46 704 106975
L:   http://www.linkedin.com/in/neubauer
T:   @peterneubauer

If you can write, you can code - @coderdojomalmo
If you can sketch, you can use a graph database - @neo4j


Peter Neubauer

unread,
May 30, 2012, 9:27:35 PM5/30/12
to ne...@googlegroups.com

Joel,
There are more changed ahead before some dust settles, so let's wait for Gremlin 2.1 before porting. Also, as versions start to break APIs here, I think we need a separate plugin so we can handle the versions separately. Wdyt?

Send from mobile.

Marko Rodriguez

unread,
May 30, 2012, 9:32:29 PM5/30/12
to ne...@googlegroups.com
Hi,

I concur with Peter. While Gremlin 2 is backwards compatible with Gremlin 1.x, Blueprints 2 and Blueprints 1.x are radically different -- massive breaking changes.

I would recommend having a Gremlin 1.x plugin and a Gremlin 2.x plugin and then over time, fade out Gremlin 1.x as people migrate over -- or, just keep it around as its not going to change as that line of development is stopped.

Thanks Peter,
Marko.
Reply all
Reply to author
Forward
0 new messages