Bookmark Topic Watch Topic
  • New Topic

question about rmi registry

 
zb cong
Ranch Hand
Posts: 416
  • Mark post as helpful
  • send pies
  • Report post to moderator
hello
i write a simple interface "Hello.java",i want to call it by rmi,after "javac","rmic","rmiregistry",i want to start "RMIServer.class" that is used to register in the server,see my code:
==================================================public
class RMIServer{
private static final int PORT=1099;
private static final String HOSTNAME="127.0.0.1";
public RMIServer()
throws RemoteException,
MalformedURLException,
NotBoundException{
LocateRegistry.createRegistry(PORT);
System.out.println("registry:"+HOSTNAME+" in "+(Integer.toString(PORT)));
Hello h=new HelloImpl();
System.out.println("remote object has be created");
String urlString="//"+HOSTNAME+":"+Integer.toString(PORT)+"/HelloService";
Naming.rebind(urlString,h);
System.out.println("binding finished");
}
public
static
void
main(String argv[]){
System.setSecurityManager(new RMISecurityManager());
try{
RMIServer rs=new RMIServer();
}catch(Exception e){
System.err.println(e);
}
}
=================================================
i type"java RMIServer",it tell me:
==================================================java.rmi.server.ExportException: Port already in use: 1099; nested exception is:
java.net.BindException: Address already in use: JVM_Bind
==================================================
then i modify the port number to "10002",it said:
==================================================
registry:127.0.0.1 in 10002
remote object has be created
java.security.AccessControlException: access denied (java.net.SocketPermission
127.0.0.1:10002 connect,resolve)
==================================================
who can tell me why?
thanks alot
 
Edy Yu
Ranch Hand
Posts: 264
  • Mark post as helpful
  • send pies
  • Report post to moderator
because you have to set the permission of the port you want to use.
You can use the permission tool packed to JDK or edit your own policy file.
Below is a very simple policy file. It simple grant you everything.
grant {
permission java.security.AllPermission;
};
and when you run the server,
use -Djava.security.policy option
 
Carl Trusiak
Sheriff
Posts: 3341
  • Mark post as helpful
  • send pies
  • Report post to moderator
zb,
Do not cross post the same message in multiple forums!
 
    Bookmark Topic Watch Topic
  • New Topic
Boost this thread!