import com.twitter.finagle.Thrift;
import com.twitter.util.Future;
import com.example.myapp.HelloWorld;
import com.example.myapp.HelloRequest;
import com.example.myapp.HelloResponse;
public class MyServer {
public static void main(String[] args) {
HelloWorld.ServiceIface myService = new HelloWorld.ServiceIface() {
@Override
public Future<HelloResponse> sayHello(HelloRequest request) {
String message = "Hello, " + request.getName() + "!";
HelloResponse response = new HelloResponse(message);
return Future.value(response);
}
};
Thrift.serveIface("localhost:9090", myService);
}
}
import com.twitter.finagle.Thrift;
import com.twitter.util.Function;
import com.example.myapp.HelloWorld;
import com.example.myapp.HelloRequest;
import com.example.myapp.HelloResponse;
public class MyClient {
public static void main(String[] args) {
HelloWorld.ServiceIface myService = Thrift.client()
.newIface("localhost:9090", HelloWorld.ServiceIface.class);
HelloRequest request = new HelloRequest("John");
myService.sayHello(request).addEventListener(new Function<Try<HelloResponse>, BoxedUnit>() {
@Override
public BoxedUnit apply(Try<HelloResponse> responseTry) {
if (responseTry.isSuccess()) {
HelloResponse response = responseTry.get();
System.out.println(response.getMessage());
} else {
System.out.println("Failed to get response: " + responseTry.cause());
}
return BoxedUnit.UNIT;
}
});
}
}