2016-02-05 68 views
0

节俭0.9.2在这里。这是我简单led.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); 
} 

当我运行thrift --gen java led.thrift我收到以下错误:

[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. 

这是怎么回事?

回答

1

您需要添加一些数据类型。

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

此外,(至少)新版本会告诉你,...

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