我收到此錯誤:golang與節儉沒有實現thrift.TProcessorFunction(類型錯誤加工方法)
# metric_system
./metric_system.go:227: cannot use myStructProviderProcessorGetMyStruct literal (type *myStructProviderProcessorGetMyStruct) as type thrift.TProcessorFunction in assignment:
*myStructProviderProcessorGetMyStruct does not implement thrift.TProcessorFunction (wrong type for Process method)
have Process(int32, thrift.TProtocol, thrift.TProtocol) (bool, thrift.TException)
want Process(context.Context, int32, thrift.TProtocol, thrift.TProtocol) (bool, thrift.TException)
./metric_system.go:235: not enough arguments in call to processor.Process
have (int32, thrift.TProtocol, thrift.TProtocol)
want (context.Context, int32, thrift.TProtocol, thrift.TProtocol)
當我使用golang 1.8.3和節儉0.10.0 構建簡單的去應用要重現:
2038 thrift -r --gen go metric_system.thrift
2040 cp -r gen-go/* src
2041 cd src
2042 go build
文件夾結構
./metric_system.thrift
./.settings
./.settings/language.settings.xml
./src
./src/metric_system
./src/metric_system/my_struct_provider-remote
./src/metric_system/my_struct_provider-remote/my_struct_provider-remote.go
./src/metric_system/metric_system.go
./src/metric_system/GoUnusedProtection__.go
./src/metric_system/metric_system-consts.go
./src/main.go
./.cproject
./pkg
./pkg/linux_amd64
./.project
./bin
./gen-go
./gen-go/metric_system
./gen-go/metric_system/my_struct_provider-remote
./gen-go/metric_system/my_struct_provider-remote/my_struct_provider-remote.go
./gen-go/metric_system/metric_system.go
./gen-go/metric_system/GoUnusedProtection__.go
./gen-go/metric_system/metric_system-consts.go
metric_system.thrift文件:
struct MyStruct {
1: i64 myInt,
}
service MyStructProvider { MyStruct getMyStruct() }
任何幫助表示讚賞
和metric_system.thrift文件是這樣的:結構MYSTRUCT { \t 1:I64敏, } 服務MyStructProvider { \t MYSTRUCT getMyStruct(), } – user2982256
當張貼有關的問題,這是有幫助的,包括在你的問題相關的代碼。 – Adrian