Topic: rmi出错

  Print this page

1.rmi出错 Copy to clipboard
Posted by: lisycn
Posted on: 2005-09-07 23:00

编译通过了,是不是policy文件没有配好.
程序如下:

----- PerfectTimeI.java ------
import java.rmi.*;
interface PerfectTimeI extends Remote{
  long getPerfectTime() throws RemoteException;
}
-----------------------------------------------------------------------------------------------
--------- PerfectTime.java -----------

import java.rmi.*;
import java.rmi.server.*;
import java.rmi.registry.*;
import java.net.*;
public class PerfectTime extends UnicastRemoteObject implements PerfectTimeI{
  public long getPerfectTime() throws RemoteException{
    return System.currentTimeMillis();
  }
  public PerfectTime() throws RemoteException{
  }
  public static void main(String args[]) throws Exception {
    System.setSecurityManager(new RMISecurityManager());
    PerfectTime pt=new PerfectTime();
    Naming.bind("//lishy:1099/PerfectTime",pt);
    System.out.println("Ready to do time");
    }
    }
---------------------------------------------------------------------------------------------------
---------- DisplayPerfectTime.java -------
import java.rmi.*;
import java.rmi.registry.*;
public class DisplayPerfectTime{
  public static void main(String args[]) throws Exception{
    System.setSecurityManager(new RMISecurityManager());
    PerfectTime t=(PerfectTime)Naming.lookup("//lishy:1099/PerfectTime");
    for(int i=0;i<10;i++)
     System.out.println("Perfect time=" + t.getPerfectTime());

}
}
---------------------------------------------------------------------------------------------------

----- DisplayPerfectTime.policy和PerfectTime.policy如下
grant codebase "fileBig Smile:\li\c15"
{
permission java.net.SocketPermission "lishy:1099","accept,connect,listen,resolve";
};
---------------------------------------------------------------------------------------------------
运行时java -Djava.security.policy=PerfectTime.policy PerfectTime
报错:
D:\li\c15>java -Djava.security.policy=PerfectTime.policy PerfectTime
Exception in thread "main" java.security.AccessControlException: access denied
java.net.SocketPermission lishy resolve)
at java.security.AccessControlContext.checkPermission(AccessControlCon
xt.java:270)
at java.security.AccessController.checkPermission(AccessController.jav
401)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:542)
at java.lang.SecurityManager.checkConnect(SecurityManager.java:1042)
at java.net.InetAddress.getAllByName0(InetAddress.java:937)
at java.net.InetAddress.getAllByName0(InetAddress.java:918)
at java.net.InetAddress.getAllByName(InetAddress.java:912)
at java.net.InetAddress.getByName(InetAddress.java:832)
at java.net.InetSocketAddress.<init>(InetSocketAddress.java:109)
at java.net.Socket.<init>(Socket.java:119)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDire
SocketFactory.java:22)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMast
SocketFactory.java:128)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:562)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:1
)
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.bind(Unknown Source)
at java.rmi.Naming.bind(Naming.java:111)
at PerfectTime.main(PerfectTime.java:15)
谁能帮帮我啊!!!困惑好久了,找不出哪有问题


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923