On the Java side, you need to first read the bytes into a `MessageReader`. That's typically done via one of the `Serialize.read()` methods.
The `AnyPointer.Reader()` is not intended for external use. Probably we should make it private. On Mon, Sep 30, 2019 at 6:25 AM 张小 <[email protected]> wrote: > C++ server send Capn Object to JavaClient like this > > capnp::MallocMessageBuilder message; > Info::Builder info = message.initRoot<Info>(); > info.setId(123); > kj::ArrayPtr<const kj::ArrayPtr<const capnp::word>> segments = > message.getSegmentsForOutput(); > > then I convert the segments object to char* send to java_client by proto > rpc_call (bytes field) > > > Then In java_client, I do like this to read the capn object > com.google.protobuf.ByteString capn_object_bytes = > response.getCapnObject() > SegmentReader segment = new > SegmentReader(capn_object_bytes.asReadOnlyByteBuffer(), null); > AnyPointer.Reader any = new AnyPointer.Reader(segment, 0, 64*1024*1024); > Info.Reader info = any.getAs(Info.factory); > System.out.println("Id:" + info.getId()); > > > run java_cliet ,happend error like this : > Exception in thread "main" java.lang.NullPointerException > at org.capnproto.WireHelpers.readStructPointer(WireHelpers.java:918) > at > org.capnproto.StructFactory.fromPointerReaderRefDefault(StructFactory.java:34) > at org.capnproto.StructFactory.fromPointerReader(StructFactory.java:41) > at org.capnproto.StructFactory.fromPointerReader(StructFactory.java:24) > at org.capnproto.AnyPointer$Reader.getAs(AnyPointer.java:56) > > > > > -- > You received this message because you are subscribed to the Google Groups > "Cap'n Proto" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/capnproto/081ab20b-5eae-43d5-a4fc-8230ef39d4a5%40googlegroups.com > <https://groups.google.com/d/msgid/capnproto/081ab20b-5eae-43d5-a4fc-8230ef39d4a5%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "Cap'n Proto" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/capnproto/CABR6rW8vHO5omXj40YaVGqc5g2_cnmXJ1G0Kk%3DC7iwK3TwJ5sA%40mail.gmail.com.
