✎
编程开发网
首页
C语言
C++
面试
Linux
函数
Windows
数据库
下载
搜索
当前位置:
首页
->
AI编程基础
->
JAVA
Spring框架学习[Spring RMI实现远程调用](九)
2014-11-24 03:00:32
·
作者:
·
浏览:
9
标签:
Spring
框架
学习
RMI
实现
远程
调用
" + this.serviceName + "': " + ex.toString()); } catch (RemoteException ex) { unexportObjectSilently(); throw ex; } } …… }
public class RmiServiceExporter extends RmiBasedExporter implements InitializingBean, DisposableBean { //导出的RMI服务名称 private String serviceName; //RMI服务端口 private int servicePort = 0; //RMI客户端socket工厂 private RMIClientSocketFactory clientSocketFactory; //RMI服务端socket工厂 private RMIServerSocketFactory serverSocketFactory; //注册器 private Registry registry; //注册主机 private String registryHost; //注册端口 private int registryPort = Registry.REGISTRY_PORT; //客户端注册socket工厂 private RMIClientSocketFactory registryClientSocketFactory; //服务端注册socket工厂 private RMIServerSocketFactory registryServerSocketFactory; //总是创建时注册 private boolean alwaysCreateRegistry = false; //替换已有的绑定 private boolean replaceExistingBinding = true; //导出的远程对象 private Remote exportedObject; //创建注册 private boolean createdRegistry = false; //注入服务端配置的RMI导出服务名称,格式为:“rmi://host:post/NAME” public void setServiceName(String serviceName) { this.serviceName = serviceName; } //设置服务端口 public void setServicePort(int servicePort) { this.servicePort = servicePort; } //设置RMI客户端socket工厂 public void setClientSocketFactory(RMIClientSocketFactory clientSocketFactory) { this.clientSocketFactory = clientSocketFactory; } //设置RMI服务端socket工厂 public void setServerSocketFactory(RMIServerSocketFactory serverSocketFactory) { this.serverSocketFactory = serverSocketFactory; } //设置RMI注册器 public void setRegistry(Registry registry) { this.registry = registry; } //设置RMI注册主机 public void setRegistry
Host(String registryHost) { this.registryHost = registryHost; } //设置RMI注册端口 public void setRegistryPort(int registryPort) { this.registryPort = registryPort; } //设置用于注册的RMI客户端socket工厂 public void setRegistryClientSocketFactory(RMIClientSocketFactory registryClientSocketFactory) { this.registryClientSocketFactory = registryClientSocketFactory; }//设置用于注册的RMI服务端socket工厂 public void setRegistryServerSocketFactory(RMIServerSocketFactory registryServerSocketFactory) { this.registryServerSocketFactory = registryServerSocketFactory; } //设置是否总是创建注册,而不是试图查找指定端口上已有的注册 public void setAlwaysCreateRegistry(boolean alwaysCreateRegistry) { this.alwaysCreateRegistry = alwaysCreateRegistry; } //设置是否提供已绑定的RMI注册 public void setReplaceExistingBinding(boolean replaceExistingBinding) { this.replaceExistingBinding = replaceExistingBinding; } //IoC容器依赖注入完成之后的回调方法 public void afterPropertiesSet() throws RemoteException { prepare(); } //初始化RMI服务导出器 public void prepare() throws RemoteException { //调用其父类RmiBasedExporter的方法,检查服务引用是否被设置 checkService(); //如果服务导出名称为null if (this.serviceName == null) { throw new IllegalArgumentException("Property 'serviceName' is required"); } //检查socket工厂 if (this.clientSocketFactory instanceof RMIServerSocketFactory) { this.serverSocketFactory = (RMIServerSocketFactory) this.clientSocketFactory; } if ((this.clientSocketFactory != null && this.serverSocketFactory == null) || (this.clientSocketFactory == null && this.serverSocketFactory != null)) { throw new IllegalArgumentException( "Both RMIClientSocketFactory and RMIServerSocketFactory or none required"
首页
上一页
6
7
8
9
10
11
下一页
尾页
9
/11/11