免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1605 | 回复: 0
打印 上一主题 下一主题

Java远程方法调用实践 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-05-30 12:31 |只看该作者 |倒序浏览
Java远程方法调用实践


服务器端业务接口
  1. public interface Biz extends Remote {
  2.         public String aloha() throws RemoteException;
  3. }
复制代码
服务器端业务实现
  1. public class BizImpl extends UnicastRemoteObject implements Biz {
  2.         private static final long serialVersionUID = -8559392326593037120L;
  3.         public BizImpl() throws RemoteException {
  4.                 super();
  5.         }
  6.         @Override
  7.         public String aloha() throws RemoteException {
  8.                 return "Aloha Baby.";
  9.         }
  10. }
复制代码
服务器注册远程实现名称

  1. public class Server {
  2.         public Server() {
  3.                 try {
  4.                         Biz bis = new BizImpl();
  5.                         // style-1
  6.                         Registry registry = LocateRegistry.createRegistry(RMIParameter.PORT);
  7.                         registry.rebind(RMIParameter.NAME, bis); // replace existing binding name
  8.                         // style-2
  9.                         //java.rmi.Naming.rebind(RMIParameter.NAME, bis); // replace existing binding name
  10.                 } catch (Exception e) {
  11.                         e.printStackTrace();
  12.                 }
  13.         }
  14.         public static void main(String args[]) {
  15.                 new Server();
  16.         }
  17. }
复制代码
style-2 需要指定一个Policy文件或者运行rmiregistry
java -Djava.security.policy=folder_x/rmi/policy_file creative.fire.rmi.Server
Policy文件的内容为:
  1. grant{
  2.       permission java.net.SocketPermission "localhost:9527", "connect, resolve";
  3. };
  4. 运行rmiregistry是修改 JDK 目录下的jre/lib/security/java.policy
  5. rmiregistry(linux)
  6. start rmiregistry(windows)
  7. 允许任何人(targets)作任何事情(actions):
  8. grant{
  9.         permission java.security.AllPermission "","";
  10. };
  11. OR
  12. grant {
  13.   permission java.security.AllPermission;
  14. };
复制代码
客户端打桩调用

  1. public class Client {
  2.         public static void main(String args[]) {
  3.                 try {
  4.                         Biz bis = (Biz) Naming.lookup(RMIPREFIX + PORT + NAME);
  5.                         System.out.println(bis.aloha());
  6.                 } catch (Exception e) {
  7.                         e.printStackTrace();
  8.                 }
  9.         }
  10. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP