OK, veja bem, a propriedade java.rmi.server.codebase deve ser preenchida com
um endereco de rede, e nao com o nome da classe que voce quer executar.

A linha de comando que voce enviou:
>> O comando java -D java.rmi.server.codebase=HelloImpl da o seguinte erro:

Esta errada. A propriedade codebase deve conter o endereco de onde os
clientes deste objeto servidor poderao fazer download das classes
necessarias (como stubs, objetos de excecao, e assim por diante...) Por
isso, uma forma generica de executar o commando seria:

java -Djava.rmi.server.codebase=[endereco da sua maquina + caminho ate o
classpath] HelloImpl

*Exemplo de [endereco da sua maquina + caminho ate o classpath]

http://minhamaquina:minhaporta/minhasclasses/

No caso da sua aplicacao, o cliente nao conseguira fazer download dos stubs
se voce nao usar um servidor web, ou pelo menos um pseudo webserver que
implemente as requisicoes necessarias para fazer download dinamico das
classes.

Ainda assim, voce pode ter problemas pra executar um applet dependendo do
browser. Por exemplo, o IE nao suporta RMI. Se voce quiser testar o applet,
use o appletviewer que acompanha o JDK.

Espero que estas dicas ajudem um pouco.



-----Original Message-----
From: emilio lemos [mailto:[EMAIL PROTECTED]]
Sent: Monday, March 20, 2000 5:17 PM
To: [EMAIL PROTECTED]
Subject: [SouJava-J] Problemas com RMI


Prezados Amigos

Estou enfrentando alguns problemas para fazer funcionar
um exemplo envolvendo RMI. De acordo com o exemplo, o resultado sera a
apresentacao do texto "Hello World" num browser que contem um applet.

Aqui estao alguns detalhes de minha configuracao:

Uso o Windows 95

JDK1.2

Diretorio onde foram gravados os fontes : C:\MYSRC

Nao tenho nenhum servidor Web local instalado.

A compilacao dos codigos fontes funciona sem problemas
javac Hello.java HelloImpl.java HelloApplet.java

A geracao dos "skeletons" "stubs" funciona ok atraves do comando
rmic HelloImpl

O comando start rmiregistry funciona ok

O comando java -D java.rmi.server.codebase=HelloImpl da o seguinte erro:
Exception in thread "main" java.lang.NoClassDefFoundError:
java/rmi/server/codebase=HelloImpl

* Deste ponto eu nao passei

O exemplo completo pode ser encontrado em

http://java.sun.com/products/jdk/1.1/docs/guide/rmi/getstart.doc.html


Agradeco qualquer colaboracao


// Hello.java
import java.rmi.Remote;
import java.rmi.RemoteException;

public interface Hello extends Remote {
    String sayHello() throws RemoteException;
}





// HelloImpl.java

import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.RMISecurityManager;
import java.rmi.server.UnicastRemoteObject;

public class HelloImpl extends UnicastRemoteObject
    implements Hello {

    public HelloImpl() throws RemoteException {
        super();
    }

    public String sayHello() {
        return  "Hello World!";
    }

    public static void main(String args[]) {

        // Create and install a security manager
        if (System.getSecurityManager() == null) {
            System.setSecurityManager(new RMISecurityManager());
        }
        try {
            HelloImpl obj = new HelloImpl();
            // Bind this object instance to the name "HelloServer"

// Fiz uma mudanca nesta linha. A linha original e
// Naming.rebind("//myhost/HelloServer",obj);

            Naming.rebind("//127.0.0.1/HelloServer", obj);
            System.out.println("HelloServer bound in registry");
        } catch (Exception e) {
            System.out.println("HelloImpl err: " + e.getMessage());
            e.printStackTrace();
        }
    }
}





// HelloApplet.java

import java.applet.Applet;
import java.awt.Graphics;
import java.rmi.Naming;
import java.rmi.RemoteException;

public class HelloApplet extends Applet {

    String message = "blank";

    // "obj" is the identifier that we'll use to refer
    // to the remote object that implements the "Hello"
    // interface
    Hello obj = null;

    public void init() {
        try {
            obj = (Hello)Naming.lookup("//" +
                         getCodeBase().getHost() + "/HelloServer");
            message = obj.sayHello();
        } catch (Exception e) {
            System.out.println("HelloApplet exception: " +
                                    e.getMessage());
            e.printStackTrace();
        }
    }

    public void paint(Graphics g) {
        g.drawString(message, 25, 50);
    }
}


// Hello.html

<HTML>
<title>Hello World</title>
<center> <h1>Hello World</h1> </center>

The message from the HelloServer is:
<p>
<applet code="HelloApplet"
        width=500 height=120>
</applet>
</HTML>


______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com

    --------------------------- LISTA SOUJAVA ---------------------------
    http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
    [dúvidas mais comuns: http://www.soujava.org.br/faq.htm]
    [para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
    ---------------------------------------------------------------------


    --------------------------- LISTA SOUJAVA ---------------------------
    http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
    [dúvidas mais comuns: http://www.soujava.org.br/faq.htm]
    [para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
    ---------------------------------------------------------------------

Responder a