CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

RMI简单程序,运行不了,帮忙看看

楼主jackyrain(山春野夫)2005-05-23 18:33:28 在 Java / J2SE / 基础类 提问

远程接口程序:  
  package   helloWorld;  
   
  import   java.rmi.Remote;  
  import   java.rmi.RemoteException;  
   
  public   interface   Hello   extends   Remote   {  
  String   sayHello()   throws   RemoteException;  
  }  
   
  远程接口实现:  
  package   helloWorld;  
   
  import   java.rmi.Naming;  
  import   java.rmi.RemoteException;  
  import   java.rmi.RMISecurityManager;  
  import   java.rmi.server.UnicastRemoteObject;  
   
  public   class   HelloImpl   extends   UnicastRemoteObject   implements   Hello   {  
  public   HelloImpl()   throws   RemoteException{  
  super();  
  }  
   
  public   String   sayHello()   {  
  return   "Hello   RMI   World!";  
  }  
   
  public   static   void   main(String[]   args)   {  
  if   (System.getSecurityManager()   ==   null)   {  
  System.setSecurityManager(new   RMISecurityManager());  
  }  
   
  try   {  
  HelloImpl   obj   =   new   HelloImpl();  
   
  Naming.rebind("//localhost:1099/HelloServer",obj);  
  System.out.println("HelloServer   bound   in   registry!");  
  }catch   (Exception   e)   {  
  System.out.println("HelloImpl   err"+e.getMessage());  
  e.printStackTrace();  
  }  
  }  
  }  
   
   
  start   rmiregistry后运行java   helloWorld.HelloImpl就抛出异常:  
   
  HelloImpl   erraccess   denied   (java.net.SocketPermission   127.0.0.1:1099   connect,resolve)  
  java.security.AccessControlException:   access   denied   (java.net.SocketPermission   127.0.0.1:1099   connect,resolve)  
  at   java.security.AccessControlContext.checkPermission(AccessControlContext.java:269)  
  at   java.security.AccessController.checkPermission(AccessController.java:401)  
  at   java.lang.SecurityManager.checkPermission(SecurityManager.java:524)  
  at   java.lang.SecurityManager.checkConnect(SecurityManager.java:1026)  
  at   java.net.Socket.connect(Socket.java:446)  
  at   java.net.Socket.connect(Socket.java:402)  
  at   java.net.Socket.<init>(Socket.java:309)  
  at   java.net.Socket.<init>(Socket.java:124)  
  at   sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)  
  at   sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)  
  at   sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:562)  
  at   sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:185)  
  at   sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)  
  at   sun.rmi.server.UnicastRef.newCall(UnicastRef.java:313)  
  at   sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown   Source)  
  at   java.rmi.Naming.rebind(Naming.java:160)  
  at   helloWorld.HelloImpl.main(HelloImpl.java:25)  
  大家给看看,这是什么问题?谢谢! 问题点数:50、回复次数:2Top

1 楼li_haizhou(阿土)回复于 2005-05-23 20:39:04 得分 40

删除代码:  
  if   (System.getSecurityManager()   ==   null)   {  
  System.setSecurityManager(new   RMISecurityManager());  
  }  
   
  如果你一定要使用security   manager,则需要自己编辑policy文件。  
  具体做法找一下java相关文档,有很多介绍的。Top

2 楼kaleon(为人要厚道)回复于 2005-05-23 20:41:57 得分 10

如果是本地测试的话,是不能用localhost的,必须要用你的计算机名。Top

相关问题

  • 如何运行一个外部程序?简单的,不用api
  • 新手关于pb程序运行的小问题(简单!!!!)
  • 简单问题: java如何运行其它程序
  • 我的程序很简单,但就是运行有错误?
  • 为什么这个简单的程序运行没有结果?
  • 我的一个简单java程序不能运行。
  • 一个简单字符串程序,运行时错误
  • 为什么这段程序不能运行,很简单!
  • 简单程序javac成功,可是运行无内容显示
  • 运行一个简单的hibernate程序需要的jar

关键词

  • .net
  • transport
  • sun
  • socket
  • tcp
  • rmi
  • helloimpl
  • tcpchannel
  • rmisecuritymanager
  • rebind

得分解答快速导航

  • 帖主:jackyrain
  • li_haizhou
  • kaleon

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo