当前位置:  技术问答>java相关

求救,RMI中绑定出错,急急急,,巨分狂送,不够再加!!!!!!!!!!

    来源: 互联网  发布时间:2015-09-15

    本文导语:  如能留下Email,或者QQ,就更好。 在运行一个Rmi服务端程序的时候提示绑定出错,下面是打印出来的出错信息,这个程序是一个例程。 java.security.AccessControlException: access denied (java.net.SocketPermission 1 27.0.0.1:10009 connect...

如能留下Email,或者QQ,就更好。
在运行一个Rmi服务端程序的时候提示绑定出错,下面是打印出来的出错信息,这个程序是一个例程。
java.security.AccessControlException: access denied (java.net.SocketPermission 1
27.0.0.1:10009 connect,resolve)
       at java.security.AccessControlContext.checkPermission(AccessControlConte
xt.java:270)
       at java.security.AccessController.checkPermission(AccessController.java:
401)
       at java.lang.SecurityManager.checkPermission(SecurityManager.java:542)
       at java.lang.SecurityManager.checkConnect(SecurityManager.java:1044)
       at java.net.Socket.connect(Socket.java:419)
       at java.net.Socket.connect(Socket.java:375)
       at java.net.Socket.(Socket.java:290)
       at java.net.Socket.(Socket.java:118)
       at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirect
SocketFactory.java:22)
       at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMaster
SocketFactory.java:122)
       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:159)
       at LocalRemoteServer.(LocalRemoteServer.java:81)
       at LocalRemoteServer.main(LocalRemoteServer.java:38)

主程序:
/**
* Class:        LocalRemoteServer
*
 */

import java.net.*;
import java.io.*;

import java.rmi.*;
import java.rmi.server.*;
import java.rmi.registry.LocateRegistry;

public class LocalRemoteServer
{
  private static final int    PORT        = 10009;

  //
  // -> Change the name to your own computer name
  //
  private static final String HOST_NAME   = "LocalHost";


  // Instance of ourselves
  private static LocalRemoteServer lrs;

  public static void main
     (
        String[] args
     )
  {
     // We need to set the security manager to the RMISecurityManager
     System.setSecurityManager( new RMISecurityManager() );

     try
     {
        lrs = new LocalRemoteServer();
     }
     catch ( java.rmi.UnknownHostException uhe )
     {
        System.out.println( "The host computer name you have specified, " + HOST_NAME + " does not match your real computer name." );

     }
     catch ( RemoteException re )
     {
        System.out.println( "Error starting service" );
        System.out.println( "" + re );
     }
     catch ( MalformedURLException mURLe )
     {
        System.out.println( "Internal error" + mURLe );
     }
     catch ( NotBoundException nbe )
     {
        System.out.println( "Not Bound" );
        System.out.println( "" + nbe );
     }

  }  // main


  // Constructor
  public LocalRemoteServer()
    throws RemoteException,
           MalformedURLException,
           NotBoundException
  {

     LocateRegistry.createRegistry( PORT );

     System.out.println( "Registry created on host computer " + HOST_NAME + " on port " + Integer.toString( PORT) );

     RemoteModelMgrImpl rmmImpl = new RemoteModelMgrImpl();

     System.out.println( "RemoteModelImpl object created" );

     String urlString = "//" + HOST_NAME + ":" + Integer.toString( PORT ) + "/" + "RemoteModelManager";
try
{
     Naming.rebind( urlString, rmmImpl );
}
catch(Exception e)
{
System.out.println("bind error..............");
e.printStackTrace();

System.exit(0);
}
     System.out.println( "Bindings Finished, waiting for client requests." );
  }

}  // class LocalRemoteServer

|
是权限问题,如果你不修改policy策略文件,不允许你打开Socket,找到jdk下的java.policy文件,在其中仿照其他格式将
// allows anyone to listen on un-privileged ports
permission java.net.SocketPermission "localhost:1024-", "listen";
改为:
permission java.net.SocketPermission "*:1024-65535", "listen,accept,connect";

就是允许1024以上的端口监听,接受,连接,如果是在JBuilder下调试,就要修改JBuilder下面的,也可以参照自己写一个,在运行时自己指定policy,命令格式如下:
java -Djava.rmi.server.codebase=http://myhost/~myusrname/myclasses/       -Djava.security.policy=$HOME/mysrc/policy ?examples.hello.HelloImpl 

相关连接:
http://java.sun.com/products/jdk/1.2/docs/guide/security/PolicyFiles.html 
http://java.sun.com/products/jdk/1.2/docs/guide/security/permissions.html


|
//interface
import java.rmi.*;
import java.rmi.server.*;

public interface RemoteModelMgr extends java.rmi.Remote{
  public void sayHello()throws RemoteException;
}
//
import java.rmi.server.*;
import java.rmi.*;
import java.io.Serializable;

public class RemoteModelMgrImpl implements RemoteModelMgr,Serializable{

  public RemoteModelMgrImpl() {
  }
  public void sayHello()throws RemoteException{
    System.out.println("Say Hello!");
  }
}

//
import java.net.*;
import java.io.*;

import java.rmi.*;
import java.rmi.server.*;
import java.rmi.registry.LocateRegistry;

public class LocalRemoteServer
{
  private static final int    PORT        = 10009;

  //
  // -> Change the name to your own computer name
  //
  private static final String HOST_NAME   = "LocalHost";


  // Instance of ourselves
  private static LocalRemoteServer lrs;

  public static void main(String[] args)
  {
     // We need to set the security manager to the RMISecurityManager
     System.setSecurityManager( new RMISecurityManager() );

     try
     {
        lrs = new LocalRemoteServer();
     }
     catch ( java.rmi.UnknownHostException uhe )
     {
        System.out.println( "The host computer name you have specified, " + HOST_NAME + " does not match your real computer name." );

     }
     catch ( RemoteException re )
     {
        System.out.println( "Error starting service" );
        System.out.println( "" + re );
     }
     catch ( MalformedURLException mURLe )
     {
        System.out.println( "Internal error" + mURLe );
     }
     catch ( NotBoundException nbe )
     {
        System.out.println( "Not Bound" );
        System.out.println( "" + nbe );
     }

  }  // main


  // Constructor
  public LocalRemoteServer() throws RemoteException, MalformedURLException,NotBoundException
  {

     LocateRegistry.createRegistry( PORT );

     System.out.println( "Registry created on host computer " + HOST_NAME + " on port " + Integer.toString( PORT) );

     RemoteModelMgrImpl rmmImpl = new RemoteModelMgrImpl();

     System.out.println( "RemoteModelImpl object created" );

     String urlString = "//" + HOST_NAME + ":" + Integer.toString( PORT ) + "/" + "RemoteModelManager";
     try
     {
        Naming.rebind( urlString, rmmImpl );
     }
     catch(Exception e)
     {
       System.out.println("bind error..............");
       e.printStackTrace();

       System.exit(0);
     }
     System.out.println( "Bindings Finished, waiting for client requests." );
  }
}
在jdkjresecurityjava.policy中修改
permission java.net.SocketPermission "*:1024-65535", "listen,accept,connect";
运行结果:
Registry created on host computer LocalHost on port 10009
RemoteModelImpl object created
Bindings Finished, waiting for client requests.
================================================================

CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!

★  浏览帖子速度极快![建议系统使用ie5.5以上]。 ★  多种帖子实现界面。 
★  保存帖子到本地[html格式]★  监视您关注帖子的回复更新。
★  可以直接发贴、回复帖子★  采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录! 
★  支持在线检测程序升级情况,可及时获得程序更新的信息。

★★ 签名  ●  
     可以在您的每个帖子的后面自动加上一个自己设计的签名哟。

Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.

    
 
 

您可能感兴趣的文章:

  • Solaris操作系统在启动的时候出错,急急救命呀 高分求救~~~
  • sco 编译lisence出错 求救!
  • 求救!!编译内核后,加载时出错。
  • 求救!程序在EM8620平台(ARM7)下执行出错!
  • 紧急求救: 内核编译出错
  • 高分求救,libstdc++.so.5出错?
  • 求救redhat安装过程中出错重启后光驱丢失
  • 求救,引导区出错
  • [求救]在初始化sda2设备上的交换区时出错
  • 在red hat9.0下挂载minix1.0格式的软盘镜像,出错?????~~求救高手
  • Linux菜瓜求救:我在用KDE打开网页浏览器时出错:无法为:text/html创建视图,如何解决?
  • 高分求救!!为什么我采取升级方式安装rpm时老是出错!(在线等候,解决了马上给分100)
  • ubuntu下安装java6出错……求救大虾
  • make xconfig出错,求救!
  • 编译ZThread线程库出错,求救!
  • 紧急求救,请问为何一直出错?ShowContent.java:7: 缺少返回语句 },这是为什么?多谢了!
  • 菜鸟问题:这么小的一个程序怎么会出错的(求救:看看吧,半分钟就看完了,不耽误你的时间)
  • 求救:在CentOS5.5上安装配置php时出错
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求救!求救!紧急求救!为什么更新不了所指定的内容?
  • 求救!!!硬件高请进、、、、、、(十万火急,高分求救。)
  • 求救求救!!
  • 求救啊 高分求救 UNIX下关于进程通讯的问题~
  • 求救!!!求救!!!机器不能正常启动
  • 关于jdbc,求救求救!在线等待,马上给分
  • 紧急求救,root用户无权限删除文件
  • 晕,特晕...求救...
  • 高分求救~~如何取得linux下进程完整命令行字符串,就是的ps -ef 完整的全路径的CMD那一列,求救!!!!附现在的代码
  • 求救!weblogic6.0后台运行正确,前台页面跳转或调用其他页面时出“页面无法显示错误”
  • 求救:java里如何取整一个浮点数(不做四舍五入)
  • 紧急求救!!
  • Linux下无法启动apache 高分求救!在线等待
  • 紧急求救 我用freebsd通过smbfs连接win2000的一些问题 (分不够可加)
  • 紧急求救 我用freebsd通过smbfs连接win2000的一些问题
  • 操作系统 iis7站长之家
  • 求救!!在Redhat7.3下安装scim0.9.3怎么安装?
  • Linux8.0 修改字符集后,再次进系统,无图形界面问题。。。求救。。
  • SUSE网络打印机问题,在线等,求救!!
  • 散分一百,紧急求救!ROOT密码忘记


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3