Java Rmi 远程方法调用
来源:互联网 发布:linux磁盘的大小 编辑:程序博客网 时间:2024/04/30 00:26
一: 服务端 暴露服务
import java.rmi.Remote;import java.rmi.RemoteException;/** * 1.定义远程接口,必须继承Remote接口, * 2.远程调用的方法必须抛出RemoteException异常 */public interface ISayHello extends Remote {/** * @param name * @return * @throws RemoteException 远程调用方法必须抛出RemoteException */public String doSayHello(String name) throws RemoteException;}
import java.rmi.RemoteException;import com.xx.service.ISayHello;/** * 远程接口实现 */public class ChinaSayHello implements ISayHello {public String doSayHello(String name) throws RemoteException {return "您好," + name;}}
import java.net.MalformedURLException;import java.rmi.AlreadyBoundException;import java.rmi.Naming;import java.rmi.Remote;import java.rmi.RemoteException;import java.rmi.registry.LocateRegistry;import java.rmi.server.UnicastRemoteObject;import com.xx.service.ISayHello;import com.xx.service.impl.ChinaSayHello;/** * * 暴露远程服务 */public class ServerMain {public static void main(String[] args) {//创建远程对象ISayHello sayHello = new ChinaSayHello();//urlString serviceUrl = "//localhost:9999/sayhello";//java 默认对口是1099final int registryPort = 9999;//暴露服务exporter(sayHello, registryPort, serviceUrl);}/** * 暴露服务 * @param object * @param registryPort * @param serviceUrl */public static void exporter(Remote object,int registryPort, String serviceUrl) {int servicePort = 0;try {UnicastRemoteObject.exportObject(object, servicePort);LocateRegistry.createRegistry(registryPort);Naming.bind(serviceUrl, object);System.out.println("绑定成功.");} catch (RemoteException e) {e.printStackTrace();} catch (MalformedURLException e) {e.printStackTrace();} catch (AlreadyBoundException e) {e.printStackTrace();}}}
二:客户端 远程方法调用
import java.net.MalformedURLException;import java.rmi.Naming;import java.rmi.NotBoundException;import java.rmi.RemoteException;import com.xx.service.ISayHello;/** * 客户端 */public class ClientMain {public static void main(String[] args) throws RemoteException {// 查找远程对象 ISayHello sayHello= getObject(ISayHello.class, "rmi://localhost:9999/sayhello");// 远程方法调用System.out.println(sayHello.doSayHello("张三"));}public static <T> T getObject(Class<T> clazs, String serviceUrl) {try {Object object = Naming.lookup(serviceUrl);return clazs.cast(object);} catch (MalformedURLException e) {e.printStackTrace();} catch (RemoteException e) {e.printStackTrace();} catch (NotBoundException e) {e.printStackTrace();}throw new RuntimeException();}}
- Java RMI远程方法调用
- Java远程方法调用(RMI)
- Java远程方法调用RMI
- Java Rmi 远程方法调用
- JAVA rmi 远程方法调用
- java rmi远程方法调用
- Java RMI-远程方法调用
- Java远程方法调用(RMI)
- RMI - Java远程方法调用
- Java RMI-远程方法调用
- RMI--java远程方法调用
- Java RMI 远程方法调用
- java rmi远程方法调用
- Java 远程方法调用 RMI
- Java RMI远程方法调用
- Java远程方法调用(RMI)
- java RMI 远程方法调用
- Java.RMI远程方法调用
- Java程序员应该了解的10个面向对象设计原则
- mmsPlayer 2.0 将开源java部分
- Visual Studio Team Foundation Server 2010
- 内存对齐问题探究
- 喝着咖啡画着PCB
- Java Rmi 远程方法调用
- 东坡园游记
- MySQL学习笔记(三)性能优化1
- 无题
- Making HTML5 Audio Ring True
- Android之PC初体验
- VS2005 试用过期 破解
- 内存中的数据对齐
- Cellular Automaton-Python for Programmer : UC Berkeley SelfPace Course