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]
    ---------------------------------------------------------------------

Reply via email to