package io.nettythrift;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import org.apache.thrift.TBaseProcessor;
import org.apache.thrift.TException;
import io.nettythrift.bootstrap.ServerBootstrap;
import io.nettythrift.core.ThriftServerDef;
public class DemoServer {
public static void main(String[] args) throws Exception {
int port = 8083;
TBaseProcessor<?> processor = new TCalculator.Processor<TCalculator.Iface>(new CalcIfaceImpl());
ThriftServerDef serverDef = ThriftServerDef.newBuilder().listen(port)//
.withProcessor(processor)//
.using(Executors.newCachedThreadPool())//
.clientIdleTimeout(TimeUnit.SECONDS.toMillis(15)).build();
final ServerBootstrap server = new ServerBootstrap(serverDef);
// 启动 Server
server.start();
}
private static class CalcIfaceImpl implements TCalculator.Iface {
@Override
public String ping() throws TException {
System.out.println("*** ping()...");
return "PONG";
}
@Override
public int add(int num1, int num2) throws TException {
System.out.printf("*** add:(%d, %d)\n", num1, num2);
return num1 + num2;
}
@Override
public void zip(String str, int type) throws TException {
System.out.printf("*** zip:(%s, %d)\n", str, type);
}
@Override
public void uploadAction(String str) throws TException {
System.out.printf("*** uploadAction:(%s)\n", str);
}
}
}