Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [Java] Classi java rmi

  1. #1

    [Java] Classi java rmi

    Ciao a tutti sto realizzando un applicazione client-server utilizzando java rmi.
    Nello specifico utilizzo un dual server che riceve richieste sia da Client JRMP che da IIOP.
    Quando lancio tutti i comandi (a partire dalla compilazione dei file fino al lancio del server) sul pc fisso funzionano e il server parte mentre sul portatile purtroppo no. Ho fatto tantissime prove ma non riesco a venirne fuori.
    Nel dettaglio questo è l'errore che ottengo al lancio del server:

    codice:
    javax.naming.CommunicationException [Root exception is java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
    	java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
    	java.lang.ClassNotFoundException: iiop.DualServer_Stub]
    	at com.sun.jndi.rmi.registry.RegistryContext.rebind(RegistryContext.java:159)
    	at com.sun.jndi.rmi.registry.RegistryContext.rebind(RegistryContext.java:164)
    	at javax.naming.InitialContext.rebind(InitialContext.java:427)
    	at iiop.DualServer.main(DualServer.java:49)
    Caused by: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
    	java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
    	java.lang.ClassNotFoundException: iiop.DualServer_Stub
    	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:1145)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    	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 com.sun.jndi.rmi.registry.RegistryContext.rebind(RegistryContext.java:157)
    	... 3 more
    Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
    	java.lang.ClassNotFoundException: iiop.DualServer_Stub
    	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:1145)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    	at java.lang.Thread.run(Thread.java:722)
    Caused by: java.lang.ClassNotFoundException: iiop.DualServer_Stub
    	at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    	at java.lang.Class.forName0(Native Method)
    	at java.lang.Class.forName(Class.java:266)
    	at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:453)
    	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:222)
    	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1610)
    	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515)
    	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
    	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348)
    	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
    	... 13 more
    qualcuno ha qualche consiglio? per il fatto che sul mio fisso funziona e sul portatile potrebbe essere che mi mancano dei pacchetti sul portatile?
    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    55
    Ciao, io vedo questa riga
    codice:
    Caused by: java.lang.ClassNotFoundException: iiop.DualServer_Stub
    .
    Penso che DualServer_Stub sia una classe tua. Dove l'hai messa? Come è fatto il pacchetto "eseguibile"?

  3. #3
    La classe DualServer_Stub.class è presente nel percorso, infatti dal fisso non ha problemi.

    Di seguito vi è la porzione di codice del file DualServer.java dove si verifica l'errore, ho messo delle stampe a scopo di debug e l'errore avviene sulla riga evidenziata, ovvero dove avviene la rebind.

    prima di questo codice vi è una part ein cui eseguo la bind per i client di tipo IIOP e quella viene fatta correttamente.
    prima di lanciare il server lancio il registro rmi.

    codice:
    //BINDING SUL REGISTRO RMI
            Properties prop1 = new Properties();
            prop1.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.rmi.registry.RegistryContextFactory");
            prop1.put(Context.PROVIDER_URL, "rmi://192.168.0.100:3333");
            InitialContext cxt1 = new InitialContext(prop1);
    	System.out.println("Adesso va in Errore...");
            cxt1.rebind("ServerDuale", svr);                    // <-------------------------------------
            System.out.println("bind eseguita");

  4. #4
    nessuna idea?

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.