<dependency>
<groupId>io.activej</groupId>
<artifactId>activej-rpc</artifactId>
<version>3.0.0</version>
</dependency>
RpcServer server = RpcServer.create()
.withProtocol(protocol)
.withSerializer(serializer)
.withMessageTypes(Request.class, Response.class)
.withHandler(CalculatorService.class, CalculatorServiceImpl.class)
.withListenAddress(ServerConfig.DEFAULT_SERVER_ADDRESS)
.withListenPort(ServerConfig.DEFAULT_SERVER_PORT);
RpcClient client = RpcClient.create()
.withProtocol(protocol)
.withSerializer(serializer)
.withMessageTypes(Request.class, Response.class)
.withAddress(ServerConfig.DEFAULT_SERVER_ADDRESS)
.withPort(ServerConfig.DEFAULT_SERVER_PORT);
public interface CalculatorService {
int calculateSum(int a, int b);
}
public class CalculatorServiceImpl implements CalculatorService {
@Override
public int calculateSum(int a, int b) {
return a + b;
}
}
server.withHandler(CalculatorService.class, CalculatorServiceImpl.class);
public class CalculateSumRequest extends Message {
public int a;
public int b;
public CalculateSumRequest() {
}
public CalculateSumRequest(int a, int b) {
this.a = a;
this.b = b;
}
}
public class CalculateSumResponse extends Message {
public int result;
public CalculateSumResponse() {
}
public CalculateSumResponse(int result) {
this.result = result;
}
}
Promise<CalculateSumResponse> resultPromise = client.sendRequest(new CalculateSumRequest(2, 3));
resultPromise.whenComplete((result, e) -> {
if (e != null) {
} else {
System.out.println(result.result);
}
});