日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

java rmi接口 超时设置_Spring RMI客户端读超时设置 | 学步园

發布時間:2024/9/27 javascript 181 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java rmi接口 超时设置_Spring RMI客户端读超时设置 | 学步园 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

標準Java的RMI設置我所知道的有三種方式,其中第1、2種不區分框架均適用,但影響整個JVM級別的RMI服務

1.?啟動時設置sun.rmi.transport.tcp.responseTimeout,單位是毫秒

java?-Dsun.rmi.transport.tcp.responseTimeout=50

2.在應用程序中設置環境變量sun.rmi.transport.tcp.responseTimeout

System.setProperty("sun.rmi.transport.tcp.responseTimeout",?"5000")??單位也是毫秒

3.自定義socketfactory,具體用法參照官方這個指南

http://docs.oracle.com/javase/1.4.2/docs/guide/rmi/socketfactory/index.html

在Spring中,前面兩種都能生效,第三種有些地方需要注意

1.?在server端設置自定義的socket?factory

2.需要設置的是clientSocketFactory和serverSocketFactory這兩個屬性,而不是registryClientSocketFactory和registryServerSocketFactory,而且這兩個屬性要不全部設置,要不全部不設置,不能只設置一個

3.自定義的socketfactory必須實現Serializable接口(最好同時重寫hashCode和equals方法)

具體用法如下:

server端配置

RMICustomClientSocketFactory.java

public?class?RMICustomClientSocketFactory?implements?RMIClientSocketFactory,?Serializable?{

/**

*

*/

private?static?final?long?serialVersionUID?=?2879181835011310833L;

private?int?timeout;

/**

*?設置超時時間

*

*?@param?timeout

*/

public?void?setTimeout(int?timeout)?{

this.timeout?=?timeout;

}

@Override

public?Socket?createSocket(String?host,?int?port)?throws?IOException?{

Socket?socket?=?new?Socket();

socket.setSoTimeout(timeout);

socket.setSoLinger(false,?0);

socket.setKeepAlive(false);

socket.connect(new?InetSocketAddress(host,?port),?timeout);

return?socket;

}

}

RMICustomServerSocketFactory.java

public?class?RMICustomServerSocketFactory?implements?RMIServerSocketFactory,Serializable?{

/**

*

*/

private?static?final?long?serialVersionUID?=?8357061901854965297L;

private?int?timeout?=?17;

public?void?setTimeout(int?timeout)?{

this.timeout?=?timeout;

}

@Override

public?ServerSocket?createServerSocket(int?port)?throws?IOException?{

ServerSocket?serverSocket?=?new?ServerSocket(port);

serverSocket.setSoTimeout(timeout);

return?serverSocket;

}

}

在2.5.6和3.1.2中測試通過,另外在client端設置超時無效

標準Java的RMI設置我所知道的有三種方式,其中第1、2種不區分框架均適用,但影響整個JVM級別的RMI服務

1.?啟動時設置sun.rmi.transport.tcp.responseTimeout,單位是毫秒

java?-Dsun.rmi.transport.tcp.responseTimeout=50

2.在應用程序中設置環境變量sun.rmi.transport.tcp.responseTimeout

System.setProperty("sun.rmi.transport.tcp.responseTimeout",?"5000")??單位也是毫秒

3.自定義socketfactory,具體用法參照官方這個指南

http://docs.oracle.com/javase/1.4.2/docs/guide/rmi/socketfactory/index.html

在Spring中,前面兩種都能生效,第三種有些地方需要注意

1.?在server端設置自定義的socket?factory

2.需要設置的是clientSocketFactory和serverSocketFactory這兩個屬性,而不是registryClientSocketFactory和registryServerSocketFactory,而且這兩個屬性要不全部設置,要不全部不設置,不能只設置一個

3.自定義的socketfactory必須實現Serializable接口(最好同時重寫hashCode和equals方法)

具體用法如下:

server端配置

RMICustomClientSocketFactory.java

public?class?RMICustomClientSocketFactory?implements?RMIClientSocketFactory,?Serializable?{

/**

*

*/

private?static?final?long?serialVersionUID?=?2879181835011310833L;

private?int?timeout;

/**

*?設置超時時間

*

*?@param?timeout

*/

public?void?setTimeout(int?timeout)?{

this.timeout?=?timeout;

}

@Override

public?Socket?createSocket(String?host,?int?port)?throws?IOException?{

Socket?socket?=?new?Socket();

socket.setSoTimeout(timeout);

socket.setSoLinger(false,?0);

socket.setKeepAlive(false);

socket.connect(new?InetSocketAddress(host,?port),?timeout);

return?socket;

}

}

RMICustomServerSocketFactory.java

public?class?RMICustomServerSocketFactory?implements?RMIServerSocketFactory,Serializable?{

/**

*

*/

private?static?final?long?serialVersionUID?=?8357061901854965297L;

private?int?timeout?=?17;

public?void?setTimeout(int?timeout)?{

this.timeout?=?timeout;

}

@Override

public?ServerSocket?createServerSocket(int?port)?throws?IOException?{

ServerSocket?serverSocket?=?new?ServerSocket(port);

serverSocket.setSoTimeout(timeout);

return?serverSocket;

}

}

在2.5.6和3.1.2中測試通過,另外在client端設置超時無效

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的java rmi接口 超时设置_Spring RMI客户端读超时设置 | 学步园的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。