Oi Pessoal Gostaria de compartilhar com os colegas javaneses os resultados positivos obtidos na implementacao de um exemplo usando RMI, pois a duvida que enfrentei pode ser a duvida futura de outros profissionais. Meu objetivo aqui nao e ensinar RMI, mas apenas facilitar a implementacao de um exemplo completo que pode ser conseguido no endereco abaixo: http://java.sun.com/products/jdk/1.1/docs/guide/rmi/getstart.doc.html Fiz algumas adaptacoes nos fontes originais, como a eliminacao da primeira linha que referencia "packages". Fiz isso apenas por questao de teste. Outras alteracoes foram realmente necessarias, pois havia referencia a objetos que nao existiam. Aqui estao os programas alterados ************* * 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(); Hello obj = new HelloImpl(); // Nesta linha voce coloca o numero do seu IP Naming.rebind("//192.168.0.2/Hello", 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 { String nome = "Hello"; System.out.println("EMILIO:"+nome); obj = (Hello)Naming.lookup(nome); 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); } } ***************************************************************************** java.policy (preste bem atencao no nome deste arquivo) Este arquivo nao aparece no exemplo. Descobri sua utilidade por acaso analisando outro exemplo. Ele pode ser conseguido em http://developer.java.sun.com/developer/onlineTraining/Programming/BasicJava1/rmi.html ************************************************************************ grant { // Allow everything for now permission java.net.SocketPermission "*:1024-65535", "connect,accept,resolve"; permission java.net.SocketPermission "*:80", "connect"; permission java.awt.AWTPermission "accessEventQueue"; permission java.awt.AWTPermission "showWindowWithoutWarningBanner"; permission java.util.PropertyPermission "user.home", "read"; permission java.io.FilePermission "${user.home}/text.txt", "write"; permission java.io.FilePermission "${user.home}/text2.txt", "read"; }; ************************* hello.html ************************* HTML <title>Hello World</title> <center> <h1>Hello World</h1> </center> A mensagem do Servidor eh: <p> <applet codebase="classes/" code="HelloApplet" width=500 height=120> </applet> <HTML> Os resultados positivos comecaram a aparecer depois que instalei um servidor web local(no meu caso, o Personal Web Server). Apos a instalacao do Personal Web Server realizei os seguintes passos: No ambiente de rede configurei o IP para 192.168.0.2 (este numero pode mudar) Criar um diretorio MD C:\HOME Configurar diretorio root do web server para C:\HOME Criar os diretorios MD C:\home\hello md c:\home\hello\classes MD C:\home\hello\public_html MD C:\home\hello\public_html\classes Copiar todos os arquivos *.java para c:\home\hello\classes Copiar o arquivo hello.html para c:\home\hello\public_html Copiar o arquivo java.policy para c:\home\hello\public_html\classes cd\home\hello\classes Neste diretorio crie um arquivo .BAT que contenha as seguintes linhas: javac Hello.java javac HelloImpl.java javac HelloApplet.java rmic HelloImpl copy Hello*.class ..\public_html\classes del Hello*.class cd..\public_html Salvar e executar o arquivo .BAT Abra uma nova janela do MS-DOS sem fechar a janela atual cd\home\hello\public_html\classes set classpath= start rmiregistry retorne a janela anterior do MS-DOS cd\home\hello\public_html\classes crie um arquivo .BAT neste diretorio com a seguinte linha java -Djava.rmi.server.codebase=http://localhost/hello/public_html/classes/ -Djava.security.policy=java.policy HelloImpl Salve o arquivo e execute-o. Aguarde uns instantes ate que ele mostre uma mensagem indicando que o servidor esta funcionando Abra uma nova janela do MS-DOS cd\home\hello\public_html appletviewer hello.html Aguarde alguns instantes ate que o applet mostre a mensagem "Hello World" ********************************************* Um Agradecimento Especial para os amigos Luis Fernando e Ricardo Santiago ********************************************* ______________________________________________________ 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] ---------------------------------------------------------------------