PDA

View Full Version : [JAVA]Problema con rmi Java


splift
22-07-2009, 14:00
Ciao ragazzi,
sono alle prime armi con l'rmi di java, stavo provando a far girare questa applicazione di prova ma dopo aver compilato questi tre file, quando scrivo il comando rmic RMIServerImpl per creare gli stub e gli skeleton mi da un errore: class RMIServerImpl not found....come mai?
Spero in un vostro aiuto e in attesa di un aiuto vi ringrazio anticipatamente.
Ah dimenticavo di seguito riporto il codice:


/**
* @(#)RMIClient.java
*
*
* @author
* @version 1.00 2009/7/21
*/


import java.rmi.*;

public class RMIClient {
public static void main(String[] args) {
try {
System.out.println("Looking up server...");
RMIServer server = (RMIServer)
Naming.lookup("rmi://"+args[0]+"/Documents and Settings/JFK/Desktop/rmi_prove");
System.out.println("Server bound...");
server.print("prima prova");
server.print("seconda prova");
} catch (Exception e) {
e.printStackTrace();
}
}
}

/**
* @(#)RMIServer.java
*
*
* @author
* @version 1.00 2009/7/21
*/


import java.rmi.*;

public interface RMIServer extends Remote {
public void print(String s) throws RemoteException;
}

/**
* @(#)RMIServerImpl.java
*
*
* @author
* @version 1.00 2009/7/21
*/


import java.rmi.*;
import java.rmi.server.UnicastRemoteObject;

public class RMIServerImpl extends UnicastRemoteObject
implements RMIServer {
public static void main(String[] args) {
try {
System.setSecurityManager(new RMISecurityManager());
RMIServerImpl server = new RMIServerImpl();
Naming.rebind("/Documents and Settings/JFK/Desktop/rmi_prove", server);
System.out.println("Server bound");
} catch (Exception e) {
e.printStackTrace();
}
}
public RMIServerImpl() throws RemoteException {}
public void print(String s) throws RemoteException {
System.out.println(s);
}
}

PGI-Bis
22-07-2009, 14:29
a partire da Java 5 stub e skeleton non sono pių necessari.

A parte questo, nel codice che incolli non c'č ma negli originali c'č per caso anche il package di quelle classi? Inoltre rmic opera sui file compilati e non sui sorgenti: i file compilati sono accessibili dal punto in cui lanci rmic?

splift
22-07-2009, 14:35
a partire da Java 5 stub e skeleton non sono pių necessari.

A parte questo, nel codice che incolli non c'č ma negli originali c'č per caso anche il package di quelle classi? Inoltre rmic opera sui file compilati e non sui sorgenti: i file compilati sono accessibili dal punto in cui lanci rmic?

Non c'č nessun package negli originali....e rmic lo lancio nella stessa cartella!!!nn riesco a capire l'errore?grazie

PGI-Bis
22-07-2009, 14:38
prova ad eliminare i file class, dare un package ai sorgenti (package test) compilare:

javac -d . *.java

e "rmiccare"

rmic test.RMIServerImpl

splift
22-07-2009, 14:46
prova ad eliminare i file class, dare un package ai sorgenti (package test) compilare:

javac -d . *.java

e "rmiccare"

rmic test.RMIServerImpl

scusami ma chiedo troppo se mi fai un esempio con quel codice????

PGI-Bis
22-07-2009, 14:48
Ah, prima prova a specificare il classpath:

rmic -classpath . RMIServerImpl

splift
22-07-2009, 14:57
Ah, prima prova a specificare il classpath:

rmic -classpath . RMIServerImpl

in questa forma č corretto????

rmic -classpath \DocumentsandSettings\JFK\Desktop\rmi_prove.RMIServerImpl

PGI-Bis
22-07-2009, 15:00
con il prompt del dos piazzati in:

...DocumentsandSettings\JFK\Desktop\

e poi dai un:

rmic -classpath . rmi_prove.RMIServerImpl

splift
22-07-2009, 15:10
con il prompt del dos piazzati in:

...DocumentsandSettings\JFK\Desktop\

e poi dai un:

rmic -classpath . rmi_prove.RMIServerImpl

ti ringrazio perchč sei davvero gentilissimo.....:) cmq neache cosė funziona!!!

mi dice che il file non contiene RMIServerImpl.class....forse devo rinunciare!

PGI-Bis
22-07-2009, 15:15
E' solo un problema di percorsi, le tue classi non hanno nulla che non vada.

Se non hanno il package ti sposti con il prompt del dos nella stessa cartella in cui ci sono i class e dai un:

rmic -classpath . RMIServerImpl

Se hanno il package devi andare nella cartella radice di quel package e dare un:

rmic -classpath . nomepackage.RMIServerImpl

Comunque rmic non serve pių.

splift
22-07-2009, 15:21
E' solo un problema di percorsi, le tue classi non hanno nulla che non vada.

Se non hanno il package ti sposti con il prompt del dos nella stessa cartella in cui ci sono i class e dai un:

rmic -classpath . RMIServerImpl

Se hanno il package devi andare nella cartella radice di quel package e dare un:

rmic -classpath . nomepackage.RMIServerImpl

Comunque rmic non serve pių.

Grande mi ha creato il file.stub....Grazie mille!!!!