public class UnicastRemoteObject extends RemoteServer
rmic
工具。
已弃用:静态存根。 支持静态生成的存根已被弃用。 这包括此类中需要使用静态存根的API,以及加载静态存根的运行时支持。 动态生成存根是首选的,使用以下列出的五种不推荐使用的导出对象的方式之一。 不要运行rmic
来生成静态存根类。 这是不必要的,也是不推荐的。
导出远程对象有六种方式:
UnicastRemoteObject
并调用UnicastRemoteObject()
构造函数。 UnicastRemoteObject
并调用UnicastRemoteObject(port)
构造函数。 UnicastRemoteObject
并调用UnicastRemoteObject(port, csf, ssf)
构造函数。 exportObject(Remote)
方法。 已弃用 exportObject(Remote, port)
方法。 exportObject(Remote, port, csf, ssf)
方法。 第四种技术, exportObject(Remote)
,始终使用静态生成的存根,不推荐使用。
其他五种技术都使用以下方法:如果java.rmi.server.ignoreStubClasses
属性为true
(不区分大小写),或者如果无法找到静态存根,则使用Proxy
对象动态生成存根。 否则,使用静态存根。
java.rmi.server.ignoreStubClasses
属性的默认值为false
。
静态生成的存根通常使用rmic
工具从远程对象的类rmic
。 加载一个静态存根,并且如下所述构造该存根类的一个实例。
Remote
的接口 ,则远程对象的类是根类; 否则,根类是远程对象的类的最多派生超类,它直接实现扩展Remote
。 _Stub
。 RemoteStub
,并且必须具有一个参数类型为RemoteRef
的公共构造函数 。 RemoteRef
构造 。 StubNotFoundException
。 通过构造具有以下特征的Proxy
的实例来动态生成存根:
RemoteObjectInvocationHandler
用构建的实例RemoteRef
。 StubNotFoundException
。 RMISocketFactory
创建套接字。
默认情况下, RMISocketFactory
创建的服务器套接字在所有网络接口上侦听。
请参阅RMISocketFactory
课程和88428053399331中的RMI Socket Factories课程 。
ref
Modifier | Constructor and Description |
---|---|
protected |
UnicastRemoteObject()
使用匿名端口创建并导出新的UnicastRemoteObject对象。
|
protected |
UnicastRemoteObject(int port)
使用特定提供的端口创建并导出新的UnicastRemoteObject对象。
|
protected |
UnicastRemoteObject(int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf)
使用特定提供的端口和套接字工厂创建并导出新的UnicastRemoteObject对象。
|
Modifier and Type | Method and Description |
---|---|
Object |
clone()
返回与原始对象不同的远程对象的克隆。
|
static RemoteStub |
exportObject(Remote obj)
已弃用
此方法已被弃用,因为它仅支持静态存根。
改用
exportObject(Remote, port) 或exportObject(Remote, port, csf, ssf) 。
|
static Remote |
exportObject(Remote obj, int port)
使用特定提供的端口导出远程对象以使其可用于接收来电。
|
static Remote |
exportObject(Remote obj, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf)
使用给定套接字工厂指定的传输导出远程对象以使其可用于接收来电。
|
static boolean |
unexportObject(Remote obj, boolean force)
从RMI运行时中删除远程对象obj。
|
getClientHost, getLog, setLog
protected UnicastRemoteObject() throws RemoteException
导出的对象与使用RMISocketFactory
类创建的服务器套接字。
RemoteException
- 如果导出对象失败
protected UnicastRemoteObject(int port) throws RemoteException
导出的对象与使用RMISocketFactory
类创建的服务器套接字。
port
- 远程对象接收呼叫的端口号(如果
port
为零,则选择一个匿名端口)
RemoteException
- 如果无法导出对象
protected UnicastRemoteObject(int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws RemoteException
插座工厂可能是null
,在这种情况下,使用相应的客户端或服务器套接字创建方法RMISocketFactory
。
port
- 远程对象接收呼叫的端口号(如果
port
为零,则选择匿名端口)
csf
- 用于调用远程对象的客户端套接字工厂
ssf
- 用于接收远程呼叫的服务器端套接字工厂
RemoteException
- 如果无法导出对象
public Object clone() throws CloneNotSupportedException
clone
在类别
Object
CloneNotSupportedException
- 如果由于RemoteException导致克隆失败。
Cloneable
@Deprecated public static RemoteStub exportObject(Remote obj) throws RemoteException
obj
- 要导出的远程对象
RemoteException
- 如果导出失败
public static Remote exportObject(Remote obj, int port) throws RemoteException
导出的对象与使用RMISocketFactory
类创建的服务器套接字。
obj
- 要导出的远程对象
port
- 导出对象的端口
RemoteException
- 如果导出失败
public static Remote exportObject(Remote obj, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws RemoteException
插座工厂可能是null
,在这种情况下,使用相应的客户端或服务器套接字创建方法RMISocketFactory
。
obj
- 要导出的远程对象
port
- 导出对象的端口
csf
- 用于调用远程对象的客户端套接字工厂
ssf
- 用于接收远程调用的服务器端套接字工厂
RemoteException
- 如果导出失败
public static boolean unexportObject(Remote obj, boolean force) throws NoSuchObjectException
obj
- 要取消导出的远程对象
force
- 如果为true,即使有待处理或正在进行的调用,也会取消运行对象;
如果为false,则只有在没有待处理或正在进行的调用时,才会取消对象的输出
NoSuchObjectException
- 如果远程对象当前未导出