JKASRMI
RMI(RemoteMethodInvocation)远程方法调用。能够让在客户端Java虚拟机上的对象像调用本地对象一样调用服务端java
虚拟机中的对象上的方法
一、配置
[RMI]
;是否启用RMI
rmi_enable=1
;RMI服务所在包名
rmi_package=test.z.rmi
;RMI主机地址
rmi_host=localhost
;RMI端口
rmi_port=
二、服务命名
服务由接口文件和实现文件构成
接口文件必须继承JkasRmi接口
命名方式为服务名可自行命名,遵循驼峰命名规则
实现名由服务接口名+Impl方式命名
如:
Hello为服务接口名
HelloImpl为服务实现命名
三、配置服务表
服务表文件位置:data/rmitab
所有服务名必须写入服务文件rmitab,每行一个
如:
Hello
Test
四、案例
1、服务端
packagetest.z.rmi;
importjava.rmi.RemoteException;
importorg.jkas.core.JkasRmi;
publicinterfaceHelloextendsJkasRmi{
publicStringsayHello(Stringstr)throwsRemoteException;
}
packagetest.z.rmi;
importjava.rmi.RemoteException;
importjava.rmi.server.UnicastRemoteObject;
publicclassHelloImplextendsUnicastRemoteObjectimplementsHello{
publicHelloImpl()throwsRemoteException{
super();
}
publicStringsayHello(Stringstr)throwsRemoteException{
return"Hello,"+str+"!";
}
}
2、客户端(只支持JAVA)
importjava.net.MalformedURLException;
importjava.rmi.Naming;
importjava.rmi.NotBoundException;
importjava.rmi.RemoteException;
importtest.z.rmi.Hello;
publicclassClient{
publicstaticvoidmain(Stringargs[]){
try{
//填写服务器ip
Hellohello=(Hello)Naming.lookup("rmi://localhost:/Hello");
System.out.println(hello.sayHello("Hello"));
}catch(NotBoundExceptione){
System.out.println(e.toString());
}catch(MalformedURLExceptione){
e.printStackTrace();
e.printStackTrace();
}catch(RemoteExceptione){
e.printStackTrace();
}
}
}
转载请注明:http://www.0431gb208.com/sjszlfa/3713.html