java rmi 小记

it2022-05-05  90

      最近在搞Quartz任务监控管理,碰到了jmx,后来发现Quartz对jmx的支持不是很好,介绍的文档也比较少,另外Quartz可以很方便的支持rmi于是就看了一下rmi。下面把写的一些测试小例子附上,以便日后查看或者帮助他人。

  IRmiService接口,是要暴露到远程的接口。

package rmi.service;import java.rmi.Remote;import java.rmi.RemoteException;//此为远程对象调用的接口,必须继承Remote类public interface IRmiService extends Remote {  public String doSomething() throws RemoteException;}

RmiServiceImpl实现IRmiService接口,实现具体的方法。

package rmi.serviceImpl;import java.rmi.RemoteException;import java.rmi.server.UnicastRemoteObject;import rmi.service.IRmiService;//此为远程对象的实现类,须继承UnicastRemoteObjectpublic class RmiServiceImpl extends UnicastRemoteObject implements IRmiService {    private static final long serialVersionUID = 1L;    public RmiServiceImpl() throws RemoteException {        super();    }    @Override    public String doSomething() throws RemoteException {        System.out.println("doSomething is running...");        return "success msg";    }}

RmiServer为服务端

package rmi.remotingservice;import java.rmi.Naming;import java.rmi.registry.LocateRegistry;import rmi.service.*;import rmi.serviceImpl.*;public class RmiServer {    public static void main(String[] args) {        try {            IRmiService personService = new RmiServiceImpl();            // 注册通讯端口            LocateRegistry.createRegistry(6600);            // 注册通讯路径            Naming.rebind("rmi://127.0.0.1:6600/rmiService", personService);            System.out.println("Service Start!");        } catch (Exception e) {            e.printStackTrace();        }    }}

RmiClient为客户端。

package rmi.remotingclient;import java.rmi.Naming;import rmi.service.IRmiService;public class RmiClient {    public static void main(String[] args) {        try {            // 调用远程对象,注意RMI路径与接口必须与服务器配置一致            IRmiService personService = (IRmiService) Naming.lookup("rmi://127.0.0.1:6600/rmiService");            String msg = personService.doSomething();            System.out.println(msg);        } catch (Exception ex) {            ex.printStackTrace();        }    }}

RmiClient和RmiServer分别在不同的工程里运行。

源码下载地址:http://pan.baidu.com/s/1eRTgMNg

另附带quartz任务调度框架中RMI的使用例子:http://pan.baidu.com/s/1c2vBn6S

转载于:https://www.cnblogs.com/robertsun/p/5894001.html

相关资源:DirectX修复工具V4.0增强版

最新回复(0)