Je suis en train d'implémenter la structure d'appel Thrift Remote Procedure dans Java. J'ai mis en place une économie et généré mon code squelette sans trop de problèmes, mais maintenant que j'utilise les méthodes de l'API, j'ai d'étranges erreurs.Erreur lors de l'implémentation de l'API Thrift
Voici les erreurs que je reçois:
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)
Je ne pense pas que je ne suis pas faire d'erreur, mais juste pour vous, voici le code qui est conduit aux erreurs:
TProtocol prot = new TBinaryProtocol(new TSocket("http://thriftpuzzle.facebook.com",9030));
SimonSays.Client client = new SimonSays.Client(prot);
client.registerClient("[email protected]");
L'erreur est censée être générée à partir de l'appel client.registerClient()
, mais c'est un appel au code généré par Thrift, ce qui me fait penser que je fais quelque chose de mal à mettre en place la connexion elle-même.
La partie sur la création d'une instance TProtocol
Je me suis inclus, et il est probable que c'est là que réside le problème. J'espérais que quelqu'un aurait plus d'idée de ce qui ne va pas que je fais.
S'il vous plaît laissez-moi savoir si plus d'informations ou de clarification est nécessaire.
Edit: Je trouve la déclaration TProtocol
instanciation du Cassandra Wiki
Semble avoir travaillé. Merci beaucoup! – efficiencyIsBliss