title: Java RMI cannot bind server
body: <p>I'm working on Java RMI application, and having problem binding a server to the registry. I'm working on eclipse using rmi plugin, and everything worked fine before I had to format my pc. Also, I'm sure the code is ok since it's the one given to me as a solution, so there must be something wrong with my configuration. 
  Here's the code:</p>
  
  <pre><code>public static void main (String[] args){
  
      try{
  
           RMIChatServer myObject = new RMIChatServerImpl();
  
          System.setSecurityManager(new RMISecurityManager());
  
          Naming.rebind("Hello", myObject);
  
          System.out.println("Remote object bound to registry");
      }
      catch( Exception e){
  
          System.out.println("Failed to register object " + e);
          e.printStackTrace();
          System.exit(1);
  
      }
  
  }
  </code></pre>
  
  <p>Exceptions it gives:</p>
  
  <pre><code>Failed to register object java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
      java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
      java.lang.ClassNotFoundException: access to class loader denied
  java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
      java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
      java.lang.ClassNotFoundException: access to class loader denied
      at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:419)
      at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:267)
      at sun.rmi.transport.Transport$1.run(Transport.java:177)
      at sun.rmi.transport.Transport$1.run(Transport.java:174)
      at java.security.AccessController.doPrivileged(Native Method)
      at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
      at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553)
      at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808)
      at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
      at java.lang.Thread.run(Thread.java:722)
      at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:273)
      at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:251)
      at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:377)
      at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
      at java.rmi.Naming.rebind(Naming.java:177)
      at RMIChatServerImpl.main(RMIChatServerImpl.java:175)
  Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
      java.lang.ClassNotFoundException: access to class loader denied
      at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
      at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:409)
      at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:267)
      at sun.rmi.transport.Transport$1.run(Transport.java:177)
      at sun.rmi.transport.Transport$1.run(Transport.java:174)
      at java.security.AccessController.doPrivileged(Native Method)
      at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
      at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553)
      at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808)
      at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
      at java.lang.Thread.run(Thread.java:722)
  Caused by: java.lang.ClassNotFoundException: access to class loader denied
      at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:447)
      at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:184)
      at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:637)
      at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:264)
      at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:216)
      at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1593)
      at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1514)
      at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1750)
      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
      ... 13 more
  Caused by: java.security.AccessControlException: access denied ("java.io.FilePermission" "\D:\uni\YEAR 3\Enterprise Programming\java\czat solution 2\bin\-" "read")
      at java.security.AccessControlContext.checkPermission(AccessControlContext.java:366)
      at java.security.AccessController.checkPermission(AccessController.java:555)
      at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
      at sun.rmi.server.LoaderHandler$Loader.checkPermissions(LoaderHandler.java:1176)
      at sun.rmi.server.LoaderHandler$Loader.access$000(LoaderHandler.java:1130)
      at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:411)
      ... 22 more
  </code></pre>
  
  <p>I researched the problem and most say that it's because of codebase settings (I also use security policy), I have tried different settings, and currently using 'compute from classpath' option provided by rmi plugin, which worked before, but fails now :( Please advice!</p>