精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● Java>>JAVA编程>>网络编程>>RMI>>RMI规范--第五章(8)

主题:RMI规范--第五章(8)
发信人: daystream()
整理人: biubiu(2000-01-04 11:48:00), 站内信件
5.9 RMIFailureHandler 接口 
java.rmi.server.RMIFailureHandler 接口提供一种方法指明服务器套接字创建
失败时指定 RMI 运行时如何响应(除非对象正在导出)。

package java.rmi.server;


public interface RMIFailureHandler {
public boolean failure(Exception ex);
}


当出现了防止 RMI 运行时创建 java.net.Socket 的异常时将调用 failure 方法
。如果运行时试图重试,则该方法返回值为 true;否则将返回 false。

调用该方法前,需要通过调用 RMISocketFactory.setFailureHandler 来注册失
败句柄。如果该句柄未设置,则 RMI 运行时等待片刻后尝试再创建 ServerSock
et。 

注意,当 ServerSocket 首次导出对象时如果创建 ServerSocket 失败,就不会
调用 RMIFailureHandler。而当 ServerSocket 接受请求失败后再创建该 Serve
rSocket 时,即调用 RMIFailureHandler。



5.10 LogStream 类 
类 LogStream 提供一种记录错误的机制。对系统进行监控的人可能会对这些错误
感兴趣。该类在内部用于日志服务器调用。

package java.rmi.server;

public class LogStream extends java.io.PrintStream {

public static LogStream log(String name);
public static synchronized PrintStream getDefaultStream();
public static synchronized void setDefaultStream(


PrintStream newDefault);
public synchronized OutputStream getOutputStream();
public synchronized void setOutputStream(OutputStream out);
public void write(int b);
public void write(byte b[], int off, int len);
public String toString();
public static int parseLevel(String s);
// 日志等级常数
public static final int SILENT  = 0;
public static final int BRIEF   = 10;
public static final int VERBOSE = 20;
}



----------------------------------------------------------------------
----------

注意 -JDK1.2 中不鼓励使用 LogStream 类


----------------------------------------------------------------------
----------

方法 log 返回由给定名称标识的 LogStream。如果某名称所对应的日志不存在,
即创建一个使用缺省流的日志。

方法 getDefaultStream 返回用于新日志的当前缺省流。

方法 setDefaultStream 为新日志设置缺省流。

方法 getOutputStream 返回当前日志输出到的流。

方法 setOutputStream 设置日志的输出流。

方法 write 的第一种形式将向该流写一个字节数据。如果不是新起一行,则将把
该字节添加到内部缓冲区。如果是新起一行,则当前缓冲区中的行将按相应的日
志前缀发送到日志的输出流中。方法 write 的第二种形式将写字节子数组。

方法 toString 以字符串形式返回日志名。

方法 parseLevel 将日志等级的字符串名转换为内部整型表示。


5.11 stub 和 skeleton 编译器 
rmic 的 stub 和 skeleton 编译器用于为特定的远程对象实现编译相应的 stub
 和 skeleton。该编译器将由远程对象类的类全名调用。该类必须在先前已成功
编译过。

导入类的位置由环境变量 CLASSPATH 或参数 -classpath 指定。 
除非指定参数 -d,否则编译好的类文件将放在当前目录下。 
参数 -keepgenerated (或 -keep)为 stub 和 skeleton 保留生成的 java 源
文件。 
也可指定 stub 协议的版本: 
 -  -v1.1 创建符合 JDK 1.1 stub 协议版本的 stub/skeleton 
 -  -vcompat(JDK 1.2 中为缺省值)创建同时兼容 JDK 1.1 和 1.2 stub 协议
版本的 stub/skeleton 
 -  -v1.2 创建仅符合 JDK 1.2 stub 协议版本的 stub(注意,JDK 1.2 stub 
协议中并不需要 skeleton) 

-show 选项为程序显示一个图形用户界面。 
大多数 javac 命令行参数均可用(-O 除外)且可与 rmic 一起使用: 
 -  -g 生成调试信息 
 -  -depend 反复编译过期文件 
 -  -nowarn 不生成警告信息 
 -  -verbose 输出有关编译器所执行的操作的消息 
 -  -classpath <path> 指定查找输入源及类文件的位置 
 -  -d <directory> 指定放置生成类文件的位置 
 -  -J< runtime flag> 将参数传给 java 解释器 

--
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.191.124]

[关闭][返回]