Я реализую структуру вызовов Thrift Remote Procedure в Java. Я настроил бережливость и сгенерировал скелетный код без большого количества проблем, но теперь, когда я фактически использую методы API, я получаю странные ошибки.Ошибка при реализации Thrift API
Вот ошибки я получаю:
Exception in thread "main" org.apache.thrift.transport.TTransportException: Cannot write to null outputStream
at org.apache.thrift.transport.TIOStreamTransport.write(TIOStreamTransport.java:142)
at org.apache.thrift.protocol.TBinaryProtocol.writeI32(TBinaryProtocol.java:163)
at org.apache.thrift.protocol.TBinaryProtocol.writeMessageBegin(TBinaryProtocol.java:91)
at SimonSays$Client.send_registerClient(SimonSays.java:102)
at SimonSays$Client.registerClient(SimonSays.java:96)
at simon.main(testClass.java:16)
Я не думаю, что я не делаю каких-либо ошибок, но только, чтобы удостовериться, вот код, который приводит к ошибкам:
TProtocol prot = new TBinaryProtocol(new TSocket("http://thriftpuzzle.facebook.com",9030));
SimonSays.Client client = new SimonSays.Client(prot);
client.registerClient("[email protected]");
Ошибка считается вызванной вызовом client.registerClient()
, но это вызов кода, созданного Thrift, что заставляет меня чувствовать, что я делаю что-то неправильно в настройке самого соединения.
Часть о создании экземпляра TProtocol
Я включил себя, и вполне вероятно, что в этом проблема.
Я надеялся, что у кого-то будет больше представления о том, что происходит не так, как я.
Пожалуйста, дайте мне знать, если требуется дополнительная информация или пояснения.
Edit: я нашел заявление TProtocol
инстанцирования от Cassandra Wiki
Кажется, что сработало. Большое спасибо! – efficiencyIsBliss