The server exception is: WARN 09:49:56,644 user error org.apache.cassandra.avro.KeyspaceNotDefinedException at org.apache.cassandra.avro.AvroValidation.validateKeyspace(AvroValidation.java:73) at org.apache.cassandra.avro.AvroValidation.validateColumnParent(AvroValidation.java:121) at org.apache.cassandra.avro.CassandraServer.multigetSliceInternal(CassandraServer.java:311) at org.apache.cassandra.avro.CassandraServer.multiget_slice(CassandraServer.java:379) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.avro.specific.SpecificResponder.respond(SpecificResponder.java:93) at org.apache.avro.ipc.Responder.respond(Responder.java:136) at org.apache.avro.ipc.Responder.respond(Responder.java:88) at org.apache.avro.ipc.ResponderServlet.doPost(ResponderServlet.java:48) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536) at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:930) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405) at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:637)
The ruby client says: /usr/local/lib/ruby/gems/1.8/gems/avro-1.4.0/lib/avro/io.rb:247:in `match_schemas': undefined local variable or method `writers_scheam' for Avro::IO::DatumReader:Class (NameError) from /usr/local/lib/ruby/gems/1.8/gems/avro-1.4.0/lib/avro/io.rb:295:in `read_data' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `find' from /usr/local/lib/ruby/gems/1.8/gems/avro-1.4.0/lib/avro/io.rb:294:in `each' from /usr/local/lib/ruby/gems/1.8/gems/avro-1.4.0/lib/avro/io.rb:294:in `find' from /usr/local/lib/ruby/gems/1.8/gems/avro-1.4.0/lib/avro/io.rb:294:in `read_data' from /usr/local/lib/ruby/gems/1.8/gems/avro-1.4.0/lib/avro/io.rb:383:in `read_union' from /usr/local/lib/ruby/gems/1.8/gems/avro-1.4.0/lib/avro/io.rb:316:in `read_data' from /usr/local/lib/ruby/gems/1.8/gems/avro-1.4.0/lib/avro/io.rb:282:in `read' from /usr/local/lib/ruby/gems/1.8/gems/avro-1.4.0/lib/avro/ipc.rb:227:in `read_error' from /usr/local/lib/ruby/gems/1.8/gems/avro-1.4.0/lib/avro/ipc.rb:216:in `read_call_response' from /usr/local/lib/ruby/gems/1.8/gems/avro-1.4.0/lib/avro/ipc.rb:113:in `request' from ./avro_test.rb:19 "writers_scheam" is a typo bug :-) My client code is: avro_protocol = File.open("config/cassandra.avpr", "r").read json_avro = JSON.parse(avro_protocol) protocol = Avro::Protocol.parse(avro_protocol) transport = Avro::IPC::HTTPTransceiver.new("localhost", 9160) requestor = Avro::IPC::Requestor.new(protocol, transport) requestor.request("set_keyspace", "keyspace" => "TMAC") requestor.request("multiget_slice", "keys"=>... Looking in the server code, it seems java is expecting all avro communications to be stateful (or some other way of matching threads to callers.) Thanks, --Gabor