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.

Reply via email to