1.定义接口
2.实现接口
3.服务器端
4.客户端
package com.demo.rmi.dao.impl;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface RemoteDao extends Remote {
public String say()throws RemoteException;
}
2.实现接口
package com.demo.rmi.dao.impl;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class RemoteDaoImpl extends UnicastRemoteObject implements
RemoteDao {
public RemoteDaoImpl() throws RemoteException {
super();
// TODO Auto-generated constructor stub
}
@Override
public String say() throws RemoteException {
// TODO Auto-generated method stub
return "[来自服务器的问候]:你好! 很高心见到你!";
}
}
3.服务器端
package com.demo.rmi.server;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import com.demo.rmi.dao.impl.RemoteDaoImpl;
import com.demo.rmi.dao.impl.RemoteDao;
public class TestServer {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
LocateRegistry.createRegistry(1099);
RemoteDao server=new RemoteDaoImpl();
try {
Naming.rebind("//127.0.0.1:1099/SAMPLE-SERVER", server);
System.out.println("[服务已启动]");
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
4.客户端
package com.demo.rmi.client;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import com.demo.rmi.dao.impl.RemoteDaoImpl;
import com.demo.rmi.dao.impl.RemoteDao;
public class TestClient {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
try {
RemoteDao server=(RemoteDao)Naming.lookup
("//127.0.0.1:1099/SAMPLE-SERVER");
System.out.println(server.say());
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NotBoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
本文介绍了一个使用 Java RMI 技术实现的简单远程过程调用示例。该示例包括定义远程接口 RemoteDao,实现该接口的 RemoteDaoImpl 类,以及搭建服务器端与客户端的过程。通过此示例可以了解如何部署一个基本的 RMI 服务,并从客户端发起调用。
987

被折叠的 条评论
为什么被折叠?



