PDA

View Full Version : [java] Impazzisco per una Remote Exception


delagol
08-01-2004, 17:32
salve a tutti. sto impazzendo da tempo con un paio di classi java che vorrebbero comunicare in rmi tra di loro ma che uono stupidissimo errore impedisce:

RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: SrvImpl_Stub

Causa:java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: SrvImpl_Stub

sul portatile funziona tutto, sia da linea di comando che da Jbuilder, ma sul pc di casa, appena formattato e riempito solo di XP Professional, mi da questo errore.

Ecco le dichiarazioni dell'interfaccia e della implementazione del server:



---interfaccia

package primormi;

import java.rmi.Remote;

/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/

public interface SrvInt extends Remote {
public String concatena (String a, String b) throws java.rmi.RemoteException;
}


----implementazione dell'interfaccia


package primormi;

/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/

public class SrvImpl {
public SrvImpl() throws java.rmi.RemoteException{
}

public String concatena (String a, String b) throws java.rmi.RemoteException {
return a+b;
}

public static void main(String[] args) {
}

}


---classe che istanzia un oggetto di tipo SrvImpl


package primormi;

import primormi.*;
import java.rmi.*;
import java.net.*;

/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/

public class Server {
public Server() {
}
public static void main(String[] args) {
try {
primormi.SrvImpl a = new primormi.SrvImpl();
}
catch (RemoteException ex) {
}
try {
Naming.bind("SrvConcatena", a);
}
catch (AlreadyBoundException e) {
}
catch (java.net.MalformedURLException e) {
}


}

}

naturalmente ho omesso il gestore della security e mando prima in esecuzione RmiRegistry... vi prego AIUTATEMI!!!!!!:muro: :muro: :muro: :muro: :muro:

delagol
08-01-2004, 17:34
naturalmente ho installato una jsdk e una jre (anche se non sono necessari...)

recoil
08-01-2004, 19:20
porca miseria sei il secondo che chiede e non mi ricordo mai qual è la soluzione!! :muro:

è una banalità credimi... mi è capitata un paio di volte quando usavo RMI e ogni volta ci perdevo qualche minuto poi dicevo "ah, è per sta ca**ata" :rolleyes:

intanto facciamo un elenco di cose da controllare:
- classpath corretto (ma non penso sia il tuo problema)
- stub e interfaccia copiati nella cartella del client
- ricompila e rifai rmic dove serve

del resto l'errore è dato dalla mancanza dello stub, quindi o non è stato creato o non lo vede

delagol
08-01-2004, 22:30
OK!!!! doamttina provo, adesso sono troppo stanco:O

Ciao e grazie!!!!!!!!

cn73
09-01-2004, 10:15
il protocollo RMI prevede uno skeleton e uno stab che comunicano fra loro... se il client non ha lo stub mi spieghi come fanno a comunicare??

delagol
09-01-2004, 13:30
Ho risolto!!!!
era soo che jbuilder andava a mettere lo stub che creava in una directory e poi quando mandava in esecuzione il javaw lo cercava in un package in cui era assente. Fatto!!!!!