Pesoal, estou tentando fazer um projetinho que use rmi. Tenteu usar um tutorial daqui do guj mas não funcionou. Alguem tem qualquer projetinho rmi que funcione pra postar o codigo?
Agradeço. Abraço a tosdos
Pesoal, estou tentando fazer um projetinho que use rmi. Tenteu usar um tutorial daqui do guj mas não funcionou. Alguem tem qualquer projetinho rmi que funcione pra postar o codigo?
Agradeço. Abraço a tosdos
o que nao funcionou no seu projeto?
OLá.
Essas são as classes. Todas no mesmo diretório.
[code]import java.rmi.Remote;
import java.rmi.RemoteException;
public interface Mensageiro extends Remote {
public void enviarMensagem(String msg) throws RemoteException;
public String lerMensagem() throws RemoteException;
}
[/code]
[code]import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.NotBoundException;
import java.net.MalformedURLException;
public class MensageiroClient {
public static void main(String a[]){
try {
Mensageiro m = (Mensageiro) Naming.lookup("rmi://localhost/MensageiroService");
System.out.println(m.lerMensagem());
m.enviarMensagem("Hello World!");
} catch (MalformedURLException e) {
System.out.println();
System.out.println( "MalformedURLException: " + e.toString() );
} catch (RemoteException e) {
System.out.println();
System.out.println( "RemoteException: " + e.toString() );
} catch (NotBoundException e) {
System.out.println();
System.out.println( "NotBoundException: " + e.toString() );
} catch (Exception e){
System.out.println();
System.out.println( "Exception: " + e.toString() );
}
}
}
[/code]
[code]import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class MensageiroImpl extends UnicastRemoteObject implements Mensageiro {
/**
*
*/
private static final long serialVersionUID = 1L;
public MensageiroImpl() throws RemoteException {
super();
}
public void enviarMensagem(String msg) throws RemoteException {
System.out.println(msg);
}
public String lerMensagem() throws RemoteException {
return "This is not a Hello World! Message";
}
}
[/code]
[code]
import java.rmi.Naming;
public class MensageiroServer {
public MensageiroServer(){
try {
Mensageiro m = new MensageiroImpl();
Naming.rebind("rmi://localhost:1099/MensageiroService", m);
} catch (Exception e) {
System.out.println("Trouble: " + e);
}
}
public static void main(String a[]){
new MensageiroServer();
}
}[/code]
Meus Precedimentos foram:
COMPILAR AS CLASSES
javac MensageiroImpl.java
javac Mensageiro.java
javac MensageiroServer.java
javac MensageiroClient.java
GERAR ARQUIVOS STUBS E SKELETONS
rmic MensageiroImpl
Obs: O resultado do comando acima gerou apenas um aquivo chamado MensageiroImpl_Stub.class FALTOU o skeletons(Não sei o que e se fiz errado)
GEREI O RMI Registry
rmiregistry
TENTO EXECUTAR O MensageiroServer Num segundo console.
java MensageiroServer
Obs: O resultado do comando acima me retorna uma exeção: Trouble: java.rmi.ServerError: An Error is thrown while processing the invocation on the server; nested exception is:
java.lang.ClassFormatError: Mensageiro (unrecognized class file version)
TENTO EXECUTAR O MensageiroClient EM OUTRO CONSOLE
java MensageiroClient
Obs: O result do comando acima gera uma exeção: NotBoundException: java.rmi.NotBoundException: MensageiroService
Só Pessoal, ja já fico fustrado ja é o quarto tutorial que sigo a risca e nada.
Gostaria muito da ajuda de vocês.
Abraço.
Qual a versão da sua JDK , a partir da versao 5.0 não é gerado mais os Skeletons
Pelo primeiro erro vc compilou na 1.5 e tentou executar numa JRE 1.4 ou algo parecido.
Amigo Muito Obrigado. Foi Justamente isso que aconteceu. No meu pc tinha o ubuntu 6.06. Dai eu instalei o jdk6 e configurei as variáveis de ambiente, porem o ubuntu ja veio com uma jre1.4. e quando eu tentava executar ele executava justamente por ela. Solução: Tomei vergonha e instalei o ubuntu 8.04 que vem sem java nenhum e instalei a jdk/re6.
Abraço e muito obrigado.
Cara é o Seguinte: Em qualquer versão para gerar os stubs e skeletons
rmic -v1.1 MensageiroImpl