2016-02-05 1 views
0

Thrift 0.9.2 ici. Voici mon fichier simple led.thrift:Erreur de syntaxe Thrift

namespace c_glib com.example.led 
namespace java com.example.led 

typedef i32 int 

enum LedState { 
    Off = 0, 
    On = 1 
} 

struct LedToggleCommand { 
    1: required int ledId; 
    2: required LedState state; 
} 

exception LedUnavailableException { 
    1: message; 
    2: cause; 
} 

service LedService { 
    oneway void toggle(1: LedToggleCommand cmd) throws (1: LedUnavailableException luex); 
} 

Quand je lance thrift --gen java led.thrift je reçois l'erreur suivante:

[ERROR:/Users/myuser/tmp/thrift_samples/samples/led.thrift:17] (last token was ';') 
syntax error 
[FAILURE:/Users/myuser/tmp/thrift_samples/samples/led.thrift:17] Parser error during include pass. 

Qu'est-ce qui se passe ici?

Répondre

1

Vous devez ajouter certains types de données.

exception LedUnavailableException { 
    1: string message; 
    2: string cause; 
} 

De plus, (au moins) les versions plus récentes vous diront que ...

[FAILURE:test.thrift:22] Oneway methods can't throw exceptions.