Olá Javanes,

        Para rodar sua aplicacao em uma unica maquina vc pode abrir duas
janelas do dos e executar o cliente em uma e o server na outro, mas vc tera
que trocar os codigos:

>           Naming.rebind("rmi://localhost:1099/CalculatorService",c); ->
> Naming.rebin("CalculatorService",c);
> 
> 
>            Naming.lookup("rmi://remotehost/CalculatorService"); - >
> Naming.lookup("CalculatorService");
> 
> 
Rodolfo D. Dias
Depto Sistemas
Companhia Liberty-Paulista
Tel.:(011) 5503-4060
e-mail:[EMAIL PROTECTED]
          [EMAIL PROTECTED]

> ----------
> De:   Javanês[SMTP:[EMAIL PROTECTED]]
> Enviada:      Sexta-feira, 17 de Março de 2000 10:01
> Para:         SouJava; Sun; GOJUG
> Assunto:      [SouJava-J] RMI - rmiregistry
> 
> Caros Amigos,
> 
> Esta pode ser uma pergunta idiota, mas antes tirar a dúvida a permanecer
> calado.
> É possível implementar RMI em apenas em 1 computador?  O Server e o
> Client no mesmo computador?
> 
> Comecei a estudar apartir do tutorial da sun, e estou tentando rodar um
> exemplo e estou tendo problemas, no tutorial relata que somente com
> essas quatro classes é possível rodar um exemplo..
> Os códigos que estamos utilizando são esses, em um único computador.
> 
> Temos as classes:
> public interface Calculator extends java.rmi.Remote
> {
>    public long add(long a, long b) throws java.rmi.RemoteException;
>    public long sub(long a, long b) throws java.rmi.RemoteException;
>    public long mul(long a, long b) throws java.rmi.RemoteException;
>    public long div(long a, long b) throws java.rmi.RemoteException;
> }
> -------------------------
> public class CalculatorImpl extends java.rmi.server.UnicastRemoteObject
> implements Calculator
> {
>   public CalculatorImpl() throws java.rmi.RemoteException {
>     super();
>   }
>   public long add(long a, long b) throws java.rmi.RemoteException {
>     return a + b;
>   }
>   public long sub(long a, long b) throws java.rmi.RemoteException {
>     return a - b;
>   }
>   public long mul(long a, long b) throws java.rmi.RemoteException {
>     return a * b;
>   }
>   public long div(long a, long b) throws java.rmi.RemoteException {
>     return a / b;
>   }
> }
> ---------------------------
> import java.rmi.Naming;
> 
> public class CalculatorServer
> {
>    public CalculatorServer() {
>      try {
>           Calculator c = new CalculatorImpl();
>           Naming.rebind("rmi://localhost:1099/CalculatorService",c);
>      }
>      catch (Exception e) {
>           System.out.println("Trouble: " + e);
>      }
>    }
> 
>    public static void main(String args[]) {
>        new CalculatorServer();
>    }
> }
> ---------------------------------------
> import java.rmi.Naming;
> import java.rmi.RemoteException;
> import java.net.MalformedURLException;
> import java.rmi.NotBoundException;
> 
> public class CalculatorClient
> {
>    public static void main(String[] args) {
>      try {
>            Calculator c = (Calculator)
>            Naming.lookup("rmi://remotehost/CalculatorService");
>            System.out.println( c.sub(4, 3) );
>            System.out.println( c.add(4, 5) );
>            System.out.println( c.mul(3, 6) );
>            System.out.println( c.div(9, 3) );
>      }
>      catch (MalformedURLException murle) {
>            System.out.println();
>            System.out.println("MalformedURLException");
>            System.out.println(murle);
>      }
>      catch (RemoteException re) {
>            System.out.println();
>            System.out.println("RemoteException");
>            System.out.println(re);
>      }
>      catch (NotBoundException nbe) {
>            System.out.println();
>            System.out.println("NotBoundException");
>            System.out.println(nbe);
>      }
>      catch (java.lang.ArithmeticException ae) {
>            System.out.println();
>            System.out.println("java.lang.ArithmeticException");
>            System.out.println(ae);
>      }
>    }
> }
> 
> São compilas as classes, criei as camadas Stub e Esqueleto apartir da
> linha de comando (rmic CalculatorImpl), até aí tudo bem.
> O problema começa quando tento executar o rmiregistry mas uma excecao é
> gerada:
> 
> java.rmi.server.ExportException: Listen failed on port: 1099; nested
> exception is:
> java.net.SocketException: Option unsupported by protocol: create
> java.net.SocketException: Option unsupported by protocol: create
>         at java.net.PlainSocketImpl.socketCreate(Native Method)
>         at java.net.PlainSocketImpl.create(PlainSocketImpl.java:70)
>         at java.net.ServerSocket.<init>(ServerSocket.java:170)
>         at java.net.ServerSocket.<init>(ServerSocket.java:86)
>         at
> sun.rmi.transport.proxy.RMIDirectSocketFactory.createServerSocket(RMI
> DirectSocketFactory.java:34)
>         at
> sun.rmi.transport.proxy.RMIMasterSocketFactory.createServerSocket(RMI
> MasterSocketFactory.java:316)
>         at
> sun.rmi.transport.tcp.TCPEndpoint.newServerSocket(TCPEndpoint.java:550)
>         at
> sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:202)
>         at
> sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:174)
>         at
> sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:323)
>         at sun.rmi.transport.LiveRef.exportObject(LiveRef.java:123)
>         at
> sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:118)
>         at sun.rmi.registry.RegistryImpl.setup(RegistryImpl.java:99)
>         at sun.rmi.registry.RegistryImpl.<init>(RegistryImpl.java:85)
>         at sun.rmi.registry.RegistryImpl.main(RegistryImpl.java:315)
> 
> Alguém sabe me dizer o que está errado?
> Obrigado.
> 
>     --------------------------- 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