Java RMI, Remote Method Invocation, eine Java-API zur Implementierung eines Remote-Prozeduraufrufs (RPCRemote Procedure Call), der serialisierte Java-Objekte direkt übertragen kann. Seine Implementierung basiert auf der Java Virtual Machine und unterstützt daher nur Aufrufe von einer JVM zu einer anderen.
1. Der Server generiert eine Registrierung und bindet einen Port.
2. Der Server registriert die Dienstschnittstelle, die in der Registrierung veröffentlicht werden muss.
3. Startet den Dienst und wartet auf die IP des Servers und des Ports, um die Registrierung abzurufen
5. Der Verbraucher erhält die Dienstschnittstelle, die er Dienste bereitstellen möchte, anhand seines Namens
6. Der Verbraucher ruft die Methode in der Schnittstelle auf, um den Methodenaufruf abzuschließen
package cn.hu.rmi.pojo; import java.io.Serializable; /** * @Author: hu.chen * @Description: 因为需要序列化和反序列化,所以需要实现Serializable接口 * @DateTime: 2021/12/26 5:05 PM **/ public class User implements Serializable { private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + '}'; } }
Dienstleistungsverbraucher:
package cn.hu.rmi.service; import cn.hu.rmi.pojo.User; import java.rmi.Remote; import java.rmi.RemoteException; /** * @Author: hu.chen * @Description: 需要提供服务的接口需要继承 Remote 并且所有的方法都需要抛出 RemoteException 异常 * @DateTime: 2021/12/26 5:06 PM **/ public interface UserService extends Remote { /** * 所有的方法都需要抛出 RemoteException 异常 * @param id * @return * @throws RemoteException */ User getUserById(Integer id) throws RemoteException; }
Das obige ist der detaillierte Inhalt vonSo rufen Sie Java aus der Ferne basierend auf RMI auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!