ClassNotFoundException no RMI

1 resposta
E

Olás pessoal,

estou com uma aplicação simples em RMI que roda toda somente na máquina local. A estrutura de pacotes é a seguinte (não é bem código mas só assim sai identado):

|-TopologiaRMI
  |-topologia
    |-gui
    |-rmi

O projeto está na raiz TopologiaRMI. Minha interface remota (NodoRede) e a classe remota (NodoRedeImpl) estão em topologia.rmi. A classe main se chama TopologiaRMI e está no pacote topologia.

Eu compilo as classes todas, e, em seguida, rodo o rmic. Tudo beleza, ele gera o stub e o skeleton no pacote topologia.rmi.

O problema é que, quando rodo a aplicação e a chamada Naming.rebind é feita, obtenho a exceção ClassNotFoundException tanto no stub quanto no skeleton. O que pode estar errado?

[]'s

1 Resposta

E

Ou o pessoal do fórum GUJ está me boicotando ou meus posts são realmente cabeludos :stuck_out_tongue:

O problema é o seguinte: o rmiregistry, naturalmente, usa o stub e o skeleton gerados sobre a classe remota. Por isso, na hora de rodar o rmiregistry, o working directory deve ser o mesmo da aplicação e o classpath deve estar devidamente configurado.

No Eclipse, é só, no Run/External Tools colocar o Working Directory pro diretório dos executáveis da aplicação e mandar setar a variável de ambiente CLASSPATH para o direitório atual (e possíveis outros paths que a aplicação precisar). Na linha de comando, o rmiregistry deve ser rodado no diretório dos executáveis da aplicação (/bin, no caso), também com o classpath já setado. :wink:

[]'s

Criado 13 de maio de 2004
Ultima resposta 13 de mai. de 2004
Respostas 1
Participantes 1