public interface CalculatorService {
int add(int a, int b);
}
public class CalculatorServiceImpl implements CalculatorService {
@Override
public int add(int a, int b) {
return a + b;
}
}
ActiveJConfig config = new ActiveJConfig()
.withWorkerThread(4)
.withPort(8080)
.withSerializer(JsonSerializer.create())
.withHandler(new RpcRequestHandler<>(CalculatorService.class, new CalculatorServiceImpl()));
CompletableFuture<Void> serverFuture = ActiveJ.create(config)
.serve();
ActiveJConfig config = new ActiveJConfig()
.withWorkerThread(4)
.withSerializer(JsonSerializer.create());
CalculatorService client = ActiveJ.createClient(config)
.connect("localhost", 8080)
.create(CalculatorService.class);
CompletableFuture<Integer> resultFuture = client.add(2, 3);
resultFuture.whenComplete((result, exception) -> {
if (exception != null) {
System.err.println("Remote call failed: " + exception.getMessage());
} else {
System.out.println("Result: " + result);
}
});