Prezados,
Ja realizei varias leituras de topicos postados aqui no Grupo e também na internet (Google , e etc), mas não conseguir resolver meu problema referente ao funcionamento de RMI.
Irei postar meus fontes e arquivos de configurações:
Segue:
Chat.java
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface Chat extends Remote {
//Metodo para enviar Mensagem
public void enviarMensagem( String msg ) throws RemoteException;
//Metodo para lerMensagem
public String lerMensagens() throws RemoteException;
}
ChatClient.java
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.NotBoundException;
import java.net.MalformedURLException;
public class ChatClient {
public static void main( String args[] ) {
try {
Chat c = (Chat) Naming.lookup( "rmi://localhost/ChatServer" );
System.out.println(c.lerMensagens());
c.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() );
}
}
}
ChatImpl
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
//Implementação dos metodos de Chat
public class ChatImpl extends UnicastRemoteObject implements Chat {
//Variavel para armazenar a mensagem
StringBuffer mensagens;
//Constructor da classe
public ChatImpl() throws RemoteException {
super();
this.mensagens = new StringBuffer();
}
//Enviar mensagem
public void enviarMensagem( String mensagem ) throws RemoteException{
mensagens.append(mensagem+"\n");
}
//Enviar mensagem
public String lerMensagens() throws RemoteException{
return new String(mensagens);
}
}
ChatServer
import java.rmi.Naming;
public class ChatServer {
public ChatServer() {
try
{
Chat c = new ChatImpl();
Naming.rebind("//localhost/MensageiroService", c);
System.out.println("Servidor Inicializado com Sucesso.");
}
catch( Exception e ) {
System.out.println( "Trouble: " + e );
System.out.println( "Verifique se 'rmiregistry' esta´ ativo!");
}
}
public static void main(String a[]){
new ChatServer();
}
}
JDK - Instalado = 1.6.0
Arquivos bat configurados para compilar e rodar meu layout de Chat:
- 1_Compilar_Gerar_Stubs.bat
javac Chat.java
javac ChatClient.java
javac ChatImpl.java
javac ChatServer.java
rmic ChatImpl
Esta parte executa normalmente, o Rmi é executado normalmente.
- 2_Iniciar.bat
@echo off
start rmiregistry
start java ChatServer
start java ChatClient
Ao executar esta Bat, o “servidor do chat” é inicializado sem erros, mas ao executar o ChatClient a aplicação exibe a mensagem abaixo:
“NotBoundException: java.rmi.NotBoundException: ChatServer”.
Por favor me ajudem Galera do grupo.
Obrigado.