Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Problema avvio server RMI

    Ciao
    Mi sto avvicinando a Java RMI e proprio per questo motivo ho letto un articolo (dove viene analizzato un esempio di codice) a questo link: Qui .
    Ora sto cercando di eseguire il codice ke viene spiegato in quelle pagine ma ho qlc problema.
    Premetto ke uso Eclipse con il Rmi-plugin: avvio il RmiRegistry dal menu del plug-in e parte senza problemi, poi apro il listato RMISquareRootServer e mi genera questo errore:

    java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
    java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
    java.lang.ClassNotFoundException: ISquareRoot
    at sun.rmi.server.UnicastServerRef.oldDispatch(Unicas tServerRef.java:385)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastSe rverRef.java:240)
    at sun.rmi.transport.Transport$1.run(Transport.java:1 53)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport. java:149)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages( TCPTransport.java:466)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandl er.run(TCPTransport.java:707)
    at java.lang.Thread.run(Thread.java:613)
    at sun.rmi.transport.StreamRemoteCall.exceptionReceiv edFromServer(StreamRemoteCall.java:247)
    at sun.rmi.transport.StreamRemoteCall.executeCall(Str eamRemoteCall.java:223)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:3 43)
    at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
    at java.rmi.Naming.rebind(Naming.java:160)
    at RMISquareRootServer.main(RMISquareRootServer.java: 30)
    Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
    java.lang.ClassNotFoundException: ISquareRoot
    at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknow n Source)
    at sun.rmi.server.UnicastServerRef.oldDispatch(Unicas tServerRef.java:375)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastSe rverRef.java:240)
    at sun.rmi.transport.Transport$1.run(Transport.java:1 53)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport. java:149)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages( TCPTransport.java:466)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandl er.run(TCPTransport.java:707)
    at java.lang.Thread.run(Thread.java:613)
    Caused by: java.lang.ClassNotFoundException: ISquareRoot
    at java.net.URLClassLoader$1.run(URLClassLoader.java: 200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.j ava:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:3 06)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:2 51)
    at java.lang.ClassLoader.loadClassInternal(ClassLoade r.java:319)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:242)
    at sun.rmi.server.LoaderHandler.loadProxyInterfaces(L oaderHandler.java:707)
    at sun.rmi.server.LoaderHandler.loadProxyClass(Loader Handler.java:651)
    at sun.rmi.server.LoaderHandler.loadProxyClass(Loader Handler.java:588)
    at java.rmi.server.RMIClassLoader$2.loadProxyClass(RM IClassLoader.java:628)
    at java.rmi.server.RMIClassLoader.loadProxyClass(RMIC lassLoader.java:294)
    at sun.rmi.server.MarshalInputStream.resolveProxyClas s(MarshalInputStream.java:238)
    at java.io.ObjectInputStream.readProxyDesc(ObjectInpu tStream.java:1500)
    at java.io.ObjectInputStream.readClassDesc(ObjectInpu tStream.java:1463)
    at java.io.ObjectInputStream.readOrdinaryObject(Objec tInputStream.java:1699)
    at java.io.ObjectInputStream.readObject0(ObjectInputS tream.java:1305)
    at java.io.ObjectInputStream.readObject(ObjectInputSt ream.java:348)
    ... 9 more
    La classe (o meglio l'interfaccia??) ISquareRoot č presente nella stessa cartella del server..
    Qualcuno mi sa dire ke succede?? sto impazzendo non so + dove sbattere la testa

    Grazie
    Ciao
    "Vivi come se dovessi morire domani, pensa come se nn dovessi morire mai"

    "Solo i coraggiosi arrivano lā dove neanche gli angeli riescono a volare"

  2. #2
    se il fatto ti consola: ho (avevo) lo stesso problema con netbeans.... e il problema vero sono proprio questi IDE (ambienti di sviluppo) che a volte agevolano il lavoro e altre volte (come in questo caso) lo complicano.

    Dunque io ho risolto il problema (dopo 2 giorni di ricerche e imprecamenti) con:

    Codice PHP:
    -Djava.security.policy=./server.policy
    -Djava.rmi.server.codebase=file:/C:\ 
    che ho messo come "VM options" in netbanes.... In poche parole la seconda riga indica dove trovare lo stub mentre la prima dove č situato il file con i permessi per leggere appunto il file stub...Se non metti la prima riga , ti trova la classe ma non ha i permessi necessari (misteri)

    ed ecco qui il file server.policy:

    Codice PHP:
    grant {
        
    permission java.net.SocketPermission "*:1024-65535""connect,accept";
        
    permission java.io.FilePermission "C:\", "read";
    }; 

    Spero di averti messo sulla strada giusta...

    Ciao!

  3. #3

    provo

    Ciao
    scusa se non ti ho risp prima ma non ho potuto, cmq oggi pome provo la tua soluzione e poi t dico.
    Avevo gia letto qualcosa sulla sicurezza ma sinceramente non ne avevo capito molto e negli esempi + semplici sembrava evitata come idea... c provo e poi t dico
    Sperem.. (come si dice dalle mie parti)
    "Vivi come se dovessi morire domani, pensa come se nn dovessi morire mai"

    "Solo i coraggiosi arrivano lā dove neanche gli angeli riescono a volare"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.