📄 rmiserverimple.java
字号:
package ntis.com.util;
import java.rmi.server.UnicastRemoteObject;
import java.rmi.RemoteException;
import java.rmi.Naming;
import ntis.com.base.Operator;
import ntis.com.base.RmiServer;
/**<p>
*ntis.com.base.Operator偺攈惗僋儔僗傪RMI僆僽僕僃僋僩偲偟偰摦嶌偝偣傞堊偺僋儔僗丅
*杮僋儔僗偼main()儊僜僢僪傪帩偪丄帺暘帺恎偑RMI僆僽僕僃僋僩偲偟偰摦嶌偡傞丅
*扐偟僒乕僶乕偲偟偰偺婡擻偼壗傕幚憰偝傟偰偍傜偢丄
*偦傟偼偙偺僋儔僗偺僀儞僗僞儞僗偵廤栺偝傟偰偄傞丄Operator攈惗僋儔僗偵幚憰偝傟偰偄傞丅
*偮傑傝丄偙偺僋儔僗偺僀儞僗僞儞僗偼RMI僆僽僕僃僋僩偲偟偰摦嶌偟丄偦偺婡擻偼廤栺偡傞
*Operator攈惗僋儔僗傪曄峏偡傞偙偲偵傛偭偰曄偊傞偙偲偑偱偒傞丅
*</p>*/
public class RmiServerImple extends UnicastRemoteObject implements RmiServer {
private Operator ope = null;
/**<p>
*婡擻幚憰僋儔僗偺僀儞僗僞儞僗傪惗惉偟丄弶婜壔偡傞丅
*婡擻幚憰僋儔僗偼Operator偺攈惗僋儔僗偱偁傝丄RMI僆僽僕僃僋僩偲偟偰幚尰偟偨偄婡擻傪幚憰偟偰偄傞丅
*偙偺儊僜僢僪偼堷悢偱巜掕偝傟偨婡擻幚憰僋儔僗傪僀儞僗僞儞僗壔偟丄弶婜壔偡傞丅
*偙偺儊僜僢僪偵偼埲壓偺宍幃偱堷悢傪搉偝側偗傟偽側傜側偄丅
*乮屻弎偺main()儊僜僢僪偐傜搉偝傟傞堷悢偼偙偺宍幃偵側傞丅乯
*</p><pre>
*丒戞堦堷悢乧乧乧RmiServerImple偑惗惉偡傞婡擻幚憰僋儔僗丅乮Operator偺攈惗僋儔僗乯
*丒戞擇堷悢埲崀乧Operator攈惗僋儔僗偑昁梫偲偡傞弶婜壔僷儔儊乕僞丅
*</pre>
*@param args 弶婜壔僷儔儊乕僞丅
*@throws RemoteException 壗傜偐偺椺奜偑敪惗偟偨応崌丅
*/
public RmiServerImple(String[] args) throws RemoteException {
try {
String[] _args = new String[args.length - 1];
for(int i = 1; i < args.length; i++) {_args[i -1] = args[i];}
ope = (Operator)Class.forName(args[0]).newInstance();
ope.init(_args);
}
catch(Exception e) {
System.err.println(e.getClass().getName());
e.printStackTrace();
throw new RemoteException();
}
}
// ntis.com.util.RmiServer偺婰弎傪嶲徠偺偙偲丅
public Object[] request(int type, Object[] params) throws RemoteException {
try {
return ope.execute(type, params);
}
catch (Exception e) {
System.err.println(e.getClass().getName());
e.printStackTrace();
throw new RemoteException();
}
}
// ntis.com.util.RmiServer偺婰弎傪嶲徠偺偙偲丅
public void exit() throws RemoteException {
try {
new Thread() {
public void run() {
try {sleep(500);} catch(Exception e) {}
System.exit(0);
}
}.start();
}
catch (Exception e) {
System.err.println(e.getClass().getName());
e.printStackTrace();
throw new RemoteException();
}
}
/**<p>
*RmiServerImple帺恎傪惗惉偡傞丅
*惗惉屻偵RMI儗僕僗僩儕偵RmiServerImple傪搊榐偡傞丅
*偙偺儊僜僢僪偵偼埲壓偺宍幃偱堷悢傪搉偝側偗傟偽側傜側偄丅
*</p><pre>
*丒戞堦堷悢乧乧乧RMI僆僽僕僃僋僩偲偟偰RMI儗僕僗僩儕偵搊榐偡傞柤慜丅
*丒戞擇堷悢乧乧乧RmiServerImple偑惗惉偡傞婡擻幚憰僋儔僗丅乮Operator偺攈惗僋儔僗乯
*丒戞嶰堷悢埲崀乧Operator攈惗僋儔僗偑昁梫偲偡傞弶婜壔僷儔儊乕僞丅
*</pre>
*@param args 弶婜壔僷儔儊乕僞丅
*/
public static void main(String[] args) {
try {
String[] _args = new String[args.length - 1];
for(int i = 1; i < args.length; i++) {_args[i -1] = args[i];}
RmiServerImple rmiServerImple1 = new RmiServerImple(_args);
Naming.rebind(args[0], rmiServerImple1);
System.out.println("Server Start!");
}
catch(Exception e) {
e.printStackTrace();
System.err.println(e.getClass().getName());
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -