Hi Neo4j,
Me and my team are working on neo4vertx, a module that makes it possible
to talk to a Neo4j database using Vert.x.
We are implementing a feature called "query" which allows a Vert.x user
to send a Cypher query as an eventbus message and get a JSON resultset
back.
However, we seem to run into an unexpected problem when serializing to
JSON using JsonHelper.createJsonFrom() with certain queries.
A quick example (database has stuff in it of course):
// Fails with JsonMappingException (see below):
"MATCH (n) RETURN n"
//Succeeds:
"MATCH (n) RETURN n.something"
//Rest of code:
engine = new ExecutionEngine(graphDatabaseService);
ExecutionResult result;
result = engine.execute(query);
Object object = result.iterator();
String foo = JsonHelper.createJsonFrom(object);
System.out.println("DEBUG (foo): " + foo);
Does this look familiar to anyone? We essentially want to be able to
send any kind of query and either return an empty json string or a json
representation not unlike the result.json that you can retrieve from the
web interface of neo4j!
The Exception:
testQuery(org.openpcf.neo4vertx.neo4j.Neo4jGraphTest) Time elapsed:
2.362 sec <<< ERROR!
org.neo4j.server.rest.domain.JsonBuildRuntimeException:
org.codehaus.jackson.map.JsonMappingException: No serializer found for
class
org.neo4j.kernel.InternalAbstractGraphDatabase$DependencyResolverImpl
and no properties discovered to create BeanSerializer (to avoid
exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) )
(through reference chain:
scala.collection.convert.MapWrapper["content"]->org.neo4j.kernel.impl.core.NodeProxy["graphDatabase"]->org.neo4j.test.["dependencyResolver"])
at
org.codehaus.jackson.map.ser.impl.UnknownSerializer.failForEmpty(UnknownSerializer.java:52)
at
org.codehaus.jackson.map.ser.impl.UnknownSerializer.serialize(UnknownSerializer.java:25)
at
org.codehaus.jackson.map.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:446)
at
org.codehaus.jackson.map.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:150)
at
org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:112)
at
org.codehaus.jackson.map.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:446)
at
org.codehaus.jackson.map.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:150)
at
org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:112)
at
org.codehaus.jackson.map.ser.std.MapSerializer.serializeFields(MapSerializer.java:262)
at
org.codehaus.jackson.map.ser.std.MapSerializer.serialize(MapSerializer.java:186)
at
org.codehaus.jackson.map.ser.std.MapSerializer.serialize(MapSerializer.java:23)
at
org.codehaus.jackson.map.ser.std.StdContainerSerializers$IteratorSerializer.serializeContents(StdContainerSerializers.java:234)
at
org.codehaus.jackson.map.ser.std.StdContainerSerializers$IteratorSerializer.serializeContents(StdContainerSerializers.java:195)
at
org.codehaus.jackson.map.ser.std.AsArraySerializerBase.serialize(AsArraySerializerBase.java:86)
at
org.codehaus.jackson.map.ser.StdSerializerProvider._serializeValue(StdSerializerProvider.java:610)
at
org.codehaus.jackson.map.ser.StdSerializerProvider.serializeValue(StdSerializerProvider.java:256)
at
org.codehaus.jackson.map.ObjectMapper.writeValue(ObjectMapper.java:1613)
at
org.neo4j.server.rest.domain.JsonHelper.createJsonFrom(JsonHelper.java:108)
at org.openpcf.neo4vertx.neo4j.Neo4jGraph.query(Neo4jGraph.java:132)
at
org.openpcf.neo4vertx.neo4j.Neo4jGraphTest.testQuery(Neo4jGraphTest.java:47)
--
You received this message because you are subscribed to the Google Groups
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.