以下是一个使用Java实现的JSON-RPC示例代码。该示例使用了JSON-RPC 2.0规范和Jackson库进行序列化和反序列化。在这个示例中,我们将创建一个服务器和一个客户端,演示如何进行远程过程调用。
首先,确保您已经安装了Java开发环境(JDK)和Maven构建工具。
接下来,我们将创建一个Maven项目,并在项目的pom.xml
文件中添加以下依赖项:
<dependencies>
<dependency>
<groupId>com.googlecode.jsonrpc4j</groupId>
<artifactId>jsonrpc4j</artifactId>
<version>1.7.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.3</version>
</dependency>
</dependencies>
服务器端代码示例(Server.java):
import com.fasterxml.jackson.databind.ObjectMapper;
import com.googlecode.jsonrpc4j.JsonRpcServer;
import com.googlecode.jsonrpc4j.StreamServer;
import com.googlecode.jsonrpc4j.StreamServer.Type;
import com.googlecode.jsonrpc4j.spring.JsonRpcService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@JsonRpcService("/api")
public class Server {
public int add(int a, int b) {
return a + b;
}
public int subtract(int a, int b) {
return a - b;
}
public static void main(String[] args) throws Exception {
StreamServer server = new StreamServer(new JsonRpcServer(new ObjectMapper()), 8080);
server.start();
}
}
客户端代码示例(Client.java):
import com.fasterxml.jackson.databind.ObjectMapper;
import com.googlecode.jsonrpc4j.JsonRpcHttpClient;
import java.net.URL;
public class Client {
public static void main(String[] args) throws Exception {
ObjectMapper mapper = new ObjectMapper();
URL url = new URL("http://localhost:8080/api");
JsonRpcHttpClient client = new JsonRpcHttpClient(mapper, url);
// 调用服务器上的add方法
int result = client.invoke("add", new Object[]{5, 3}, Integer.class);
System.out.println(result); // 输出:8
// 调用服务器上的subtract方法
result = client.invoke("subtract", new Object[]{10, 5}, Integer.class);
System.out.println(result); // 输出:5
}
}
请确保在运行服务器代码之前先启动服务器,然后再运行客户端代码进行远程过程调用。
这是一个基本的JSON-RPC示例,您可以根据自己的需求进行修改和扩展。
标签:Java,示例,int,RPC,jsonrpc4j,new,import,com From: https://www.cnblogs.com/lukairui/p/17443335.html