package com.dy.common.mw.channel.rmi; import java.io.Serial; import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; import com.dy.common.threadPool.ThreadPool; import com.dy.common.threadPool.TreadPoolFactory; public class RmiFrameWorkImpl extends UnicastRemoteObject implements RmiFrameWork { @Serial private static final long serialVersionUID = 201807220009001L; private RmiUnitAdapter adapter ; /** * 构造方法 * @throws RemoteException 异常 */ protected RmiFrameWorkImpl(RmiUnitAdapter adapter) throws RemoteException { super(); this.adapter = adapter ; } /** * 同步请求 * @param obj 命令参数 * @return 返回命令结果 * @throws RemoteException 异常 */ @Override public Object syncRequest(Object obj) throws RemoteException { if(obj == null){ throw new RemoteException("严重错误,输入命令参数为空!") ; } return adapter.newRequestCallback().syncRequest(obj) ; } /** * 异步请求 * @param obj 参数 * @return 命令结果的ID,如果为空,则说明邮错 * @throws RemoteException 异常 */ @Override public String asyncRequest(Object obj) throws RemoteException { try { TreadPoolFactory.getThreadPoolShort().putJob(new ThreadPool.Job() { public void execute() throws RemoteException { throw new RemoteException("此方法未实现") ; } @Override public void destroy() { } @Override public boolean isDestroy() { return false; } }); }catch (RemoteException ee) { throw ee ; }catch (Exception e) { e.printStackTrace(); } return null; } /** * 关闭服务的请求 */ @Override public String shutRequest() throws RemoteException { throw new RemoteException("此方法未实现") ; } }