<dependencies>
<dependency>
<groupId>io.activej</groupId>
<artifactId>activej-rpc</artifactId>
<version>4.0.0</version>
</dependency>
</dependencies>
import io.activej.rpc.client.RpcClient;
import io.activej.rpc.server.RpcServer;
public interface CalculatorService {
int add(int a, int b);
int multiply(int a, int b);
}
public class CalculatorServiceImpl implements CalculatorService {
@Override
public int add(int a, int b) {
return a + b;
}
@Override
public int multiply(int a, int b) {
return a * b;
}
}
public class RpcServerRunner {
public static void main(String[] args) {
CalculatorService calculatorService = new CalculatorServiceImpl();
Eventloop eventloop = Eventloop.create().withCurrentThread();
RpcServer rpcServer = RpcServer.create(eventloop)
.withMessageTypes(String.class)
.withHandler(CalculatorService.class, calculatorService)
.withListenPort(8080);
rpcServer.listen();
eventloop.run();
}
}
import io.activej.rpc.client.RpcClient;
public class RpcClientRunner {
public static void main(String[] args) {
Eventloop eventloop = Eventloop.create().withCurrentThread();
CalculatorService client = RpcClient.create(eventloop)
.withMessageTypes(String.class)
.withAddress("localhost", 8080)
.createStub(CalculatorService.class);
int result1 = client.add(10, 5);
int result2 = client.multiply(7, 3);
System.out.println("Result of addition: " + result1);
System.out.println("Result of multiplication: " + result2);
eventloop.run();
}
}