Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    50

    Java RMI

    Salve a tutti
    ho un problema durante la compilazione di un programma Client-Server RMI. Copio il codice e il risultato della compilazione

    Server:

    package Server;

    public static void main(String[] args) {
    if (args.length != 0)
    args_parsing(args);
    else
    input.println("Argomenti settati di default");
    stampaArgs();
    input.println("Binding p2p_server");

    client_online = new Hashtable<ide_client, info_client>();
    files_published = new Hashtable<String, elem_lista_file>();
    udp_timer = new Hashtable<ide_client, Long>();
    input.println("Strutture allocated");
    remote_server_method_impl server;
    try {
    server = new remote_server_method_impl(client_online,
    files_published, udp_timer);
    input.println(" *** ");

    Registry registry = LocateRegistry.getRegistry("localhost",
    RMI_registry_port);
    input.print("the server has registered the service '");
    input.println(name_service + "' Server: "+server);
    input.println(" *** ");
    registry.rebind(name_service, server);
    input.println("# Server is now active #");

    } catch (RemoteException e) {
    input.println("Nessun servizio registrato");
    e.printStackTrace();
    System.exit(1);
    } catch (IOException e) {
    input.println("Impossibile creare una MulticastSocket su "
    + group.getHostAddress());
    System.exit(1);
    }
    }

    Risultato compilazione

    alice@alice-laptop:~/workspace/LPR3/src/Server$ javac -d /home/alice/workspace/LPR3/bin/ -sourcepath src -classpath /home/alice/workspace/LPR3/src/ *.java

    alice@alice-laptop:~/workspace/LPR3/src/Server$ java -classpath bin:/home/alice/workspace/LPR3/src/ Server.p2p_server

    Argomenti settati di default
    RMIporta 1099 kAport 5555 Mc group 226.226.226.226
    Binding p2p_server
    Strutture allocated
    ***
    Server created table of published files and table of now-active client
    ***
    the server has registered the service 'p2p' Server: remote_server_method_impl[UnicastServerRef [liveRef: [endpoint:[127.0.1.1:46140](local),objID:[57038110:12b01544e4c:-7fff, 9018748616976810194]]]]
    ***
    Nessun servizio registrato
    java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
    java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
    java.lang.ClassNotFoundException: Server.remote_server_method
    at sun.rmi.server.UnicastServerRef.oldDispatch(Unicas tServerRef.java:413)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastSe rverRef.java:267)
    at sun.rmi.transport.Transport$1.run(Transport.java:1 77)
    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$ConnectionHandl er.run0(TCPTransport.java:808)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandl er.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:636)
    at sun.rmi.transport.StreamRemoteCall.exceptionReceiv edFromServer(StreamRemoteCall.java:273)
    at sun.rmi.transport.StreamRemoteCall.executeCall(Str eamRemoteCall.java:251)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:3 77)
    at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
    at Server.p2p_server.main(p2p_server.java:120)
    Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
    java.lang.ClassNotFoundException: Server.remote_server_method
    at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknow n Source)
    at sun.rmi.server.UnicastServerRef.oldDispatch(Unicas tServerRef.java:403)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastSe rverRef.java:267)
    at sun.rmi.transport.Transport$1.run(Transport.java:1 77)
    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$ConnectionHandl er.run0(TCPTransport.java:808)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandl er.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:636)
    Caused by: java.lang.ClassNotFoundException: Server.remote_server_method
    at java.net.URLClassLoader$1.run(URLClassLoader.java: 217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.j ava:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:3 21)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:2 66)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at sun.rmi.server.LoaderHandler.loadProxyInterfaces(L oaderHandler.java:728)
    at sun.rmi.server.LoaderHandler.loadProxyClass(Loader Handler.java:672)
    at sun.rmi.server.LoaderHandler.loadProxyClass(Loader Handler.java:609)
    at java.rmi.server.RMIClassLoader$2.loadProxyClass(RM IClassLoader.java:646)
    at java.rmi.server.RMIClassLoader.loadProxyClass(RMIC lassLoader.java:311)
    at sun.rmi.server.MarshalInputStream.resolveProxyClas s(MarshalInputStream.java:255)
    at java.io.ObjectInputStream.readProxyDesc(ObjectInpu tStream.java:1548)
    at java.io.ObjectInputStream.readClassDesc(ObjectInpu tStream.java:1510)
    at java.io.ObjectInputStream.readOrdinaryObject(Objec tInputStream.java:1749)
    at java.io.ObjectInputStream.readObject0(ObjectInputS tream.java:1346)
    at java.io.ObjectInputStream.readObject(ObjectInputSt ream.java:368)
    ... 12 more

    A quel che ho capito non trova la classe Server.remote_server_method. (è un'interfaccia) L'interfaccia si trova nello stesso package del main insieme alla classe che implementa i suoi metodi e i package sono messi bene.

    Perchè ho questo errore??

    Grazie per l'aiuto! =)

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    50
    Risolto dovevo attivare il registro RMI nella cartella src, non nella cartella Server

    =)

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    In futuro, come indicato nel Regolamento interno, usa gli appositi tag CODE quando posti del codice.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.