Thrift文件编译常见问题:
1:注释/** */注释符必须和注释内容用空格隔开,比如/** abcasdfasdf */是对的, /**abcasdfasdf*/则是错的。
2 : 使用Java的NIO实现的client和server,使用telnet的方式访问server时,会使用server宕掉。
目前要防止发送随机数导致server,只能用传统的Socket方式:
TServerSocket serverTransport = new TServerSocket(port);
final LogQueryService.Processor processor = new LogQueryService.Processor(new LogQueryServiceImpl());
TProtocolFactory protFactory = new TBinaryProtocol.Factory(true, true);
TTransportFactory inTransportFactory, outTransportFactory;
inTransportFactory = new TTransportFactory();
outTransportFactory = new TTransportFactory();
// ThreadPool Server
TThreadPoolServer.Options options = new TThreadPoolServer.Options();
options.minWorkerThreads = 2;
TThreadPoolServer serverEngine = new TThreadPoolServer(new TProcessorFactory(processor), serverTransport,
inTransportFactory, outTransportFactory, protFactory, protFactory, options);
serverEngine.serve();