3
我正在用Java實現Thrift遠程過程調用框架。我設置了節儉並生成了我的框架代碼,但沒有太多問題,但現在我實際上使用了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
實例的部分我包括我自己,並且很可能這就是問題所在。
我希望有人對我做錯了什麼有更多的想法。
請讓我知道是否需要更多信息或澄清。
編輯:我發現TProtocol
實例化語句從Cassandra Wiki
似乎已經工作。非常感謝! – efficiencyIsBliss 2010-11-16 00:43:21