Pra que serve Naming.rebind?

2 respostas
P

Caros,

não entendo muito de EJB e gostaria de entender a linha o que se passa na linha
abaixo esse comando Naming.rebind consigo acessar via remoto a classe CursosDAO ?

abs

RemoteCursosDAO dao = new RemoteCursosDAOImpl();
        Naming.rebind("CursosDAO",dao);
public class RemoteCursosDAOServer {
    
    public static void main(String[] args) throws Exception{
        RemoteCursosDAO dao = new RemoteCursosDAOImpl();
        Naming.rebind("CursosDAO",dao);
        System.out.println("Servidor inicializado");
    }
}


public interface RemoteCursosDAO extends Remote{
    public Curso[] getCursos(boolean lite) throws RemoteException,XXXXXException;
    public Curso getCurso(long codigo) throws RemoteException,XXXXXException;
    public void save(Curso curso) throws RemoteException,XXXXXException;
    public void delete(Curso curso) throws RemoteException,XXXXXException;
}


public class RemoteCursosDAOImpl extends UnicastRemoteObject implements RemoteCursosDAO{
    
    /** Creates a new instance of RemoteCursosDAOImpl */
    public RemoteCursosDAOImpl() throws RemoteException {
    }

    public Curso[] getCursos(boolean lite) throws RemoteException, XXXXXException {
        return CursosDAO.getInstance().getCursos(lite);
    }

    public Curso getCurso(long codigo) throws RemoteException, XXXXXException {
        return CursosDAO.getInstance().getCurso(codigo);
    }

    public void save(Curso curso) throws RemoteException, XXXXXException {
        CursosDAO.getInstance().save(curso);
    }

    public void delete(Curso curso) throws RemoteException, XXXXXException {
        CursosDAO.getInstance().delete(curso);
    }

    
}

2 Respostas

F

Só de ler a API (só trabalhei com EJB uma vez e conheço pouco) entendi que você faz um novo bind (ou seja, um rebind) desse nome com um objeto remoto, no seu caso “CursosDAO” e a instância dao.
De qualquer forma, você associa o nome à instância.

P

Até onde sei, o rebind faz um novo bound de um objeto remoto no rmiregistry. Ou seja, ele é a mesma coisa que o método bind, mas caso exista algum objeto remoto com mesmo nome no rmiregistry, ele substitui.

Obs.: Apesar de rmi ser a base do EJB, você não parece estar trabalhando de fato com EJBs.

Criado 23 de setembro de 2008
Ultima resposta 23 de set. de 2008
Respostas 2
Participantes 3