PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum [ajuda] Problema passando parametros em metodo RMI #456170

22/09/2013

0

Galera, to implementando RMI em java e to com um probleminha aqui, tenho que passar dois vetores e mais o numero de elementos deles como parametro do metodo, mas quando passo ele como parametro da uma exception que não sei o que é:
a:724)  
<br>Caused by: java.net.MalformedURLException: no protocol: URL_stubs  
<br>  at java.net.URL.<init>(URL.java:585)  
<br>  at java.net.URL.<init>(URL.java:482)  
<br>  at java.net.URL.<init>(URL.java:431)  
<br>  at sun.rmi.server.LoaderHandler.pathToURLs(LoaderHandler.java:769)  
<br>  at sun.rmi.server.LoaderHandler.getDefaultCodebaseURLs(LoaderHandler.java:140)  
<br>  at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:169)  
<br>  at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:637)  
<br>  at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:264)  
<br>  at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:214)  
<br>  at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1610)  
<br>  at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515)  
<br>  at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1661)  
<br>  at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1342)  
<br>  at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)  
<br>  at sun.rmi.server.UnicastRef.unmarshalValue(UnicastRef.java:325)  
<br>  at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:307)  
<br>  ... 10 more  
<br>.run(Transport.java:177)  
    at sun.rmi.transport.TransportRemote call problems! java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:   
<br>  java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:   
<br>  java.net.MalformedURLException: no protocol: URL_stubs  
<br>java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:   
<br>  java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:   
<br>  java.net.MalformedURLException: no protocol: URL_stubs  
<br>  at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:353)  
<br>  at sun.rmi.transport.Transport$1.run(Transport.java:177)  
<br>  at sun.rmi.transport.Transport$1.run(Transport.java:174)  
<br>  at java.security.AccessController.doPrivileged(Native Method)  
<br>  at sun.rmi.transport.Transport.serviceCall(Transport.java:173)  
<br>  at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556)  
<br>  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)  
<br>  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670)  
<br>  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)  
<br>  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)  
<br>  at java.lang.Thread.run(Thread.java:724)  
<br>  at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:275)  
<br>  at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:252)  
<br>  at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161)  
<br>  at Calcular_Stub.recebeDados(Unknown Source)  
<br>  at Cliente.main(Cliente.java:56)  
<br>Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:   
<br>  java.net.MalformedURLException: no protocol: URL_stubs  
<br>  at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:310)  
<br>  at sun.rmi.transport.Transport$1.run(Transport.java:177)  
<br>  at sun.rmi.transport.Transport$1.run(Transport.java:174)  
<br>  at java.security.AccessController.doPrivileged(Native Method)  
<br>  at sun.rmi.transport.Transport.serviceCall(Transport.java:173)  
<br>  at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556)  
<br>  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)  
<br>  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670)  
<br>  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)  
<br>  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)  
<br>  at java.lang.Thread.run(Thread.java:724)  
<br>Caused by: java.net.MalformedURLException: no protocol: URL_stubs  
<br>  at java.net.URL.<init>(URL.java:585)  
<br>  at java.net.URL.<init>(URL.java:482)  
<br>  at java.net.URL.<init>(URL.java:431)  
<br>  at sun.rmi.server.LoaderHandler.pathToURLs(LoaderHandler.java:769)  
<br>  at sun.rmi.server.LoaderHandler.getDefaultCodebaseURLs(LoaderHandler.java:140)  
<br>  at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:169)  
<br>  at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:637)  
<br>  at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:264)  
<br>  at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:214)  
<br>  at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1610)  
<br>  at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515)  
<br>  at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1661)  
<br>  at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1342)  
<br>  at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)  
<br>  at sun.rmi.server.UnicastRef.unmarshalValue(UnicastRef.java:325)  
<br>  at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:307)  
<br>  ... 10 more  
<br>.run(Transport.java:174)  
    at java.security.AccessController.doPrivileged(Native Method)  
    at sun.rmi.transport.Transport.serviceCall(Transport.java:173)  
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556)  
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)  
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670)  
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)  
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)  
    at java.lang.Thread.run(Thread.java:724)  
    at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:275)  
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:252)  
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161)  
    at Calcular_Stub.recebeDados(Unknown Source)  
    at Cliente.main(Cliente.java:56)  
Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:   
    java.net.MalformedURLException: no protocol: URL_stubs  
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:310)  
    at sun.rmi.transport.TransportRemote call problems! java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:   
<br>  java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:   
<br>  java.net.MalformedURLException: no protocol: URL_stubs  
<br>java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:   
<br>  java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:   
<br>  java.net.MalformedURLException: no protocol: URL_stubs  
<br>  at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:353)  
<br>  at sun.rmi.transport.Transport$1.run(Transport.java:177)  
<br>  at sun.rmi.transport.Transport$1.run(Transport.java:174)  
<br>  at java.security.AccessController.doPrivileged(Native Method)  
<br>  at sun.rmi.transport.Transport.serviceCall(Transport.java:173)  
<br>  at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556)  
<br>  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)  
<br>  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670)  
<br>  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)  
<br>  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)  
<br>  at java.lang.Thread.run(Thread.java:724)  
<br>  at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:275)  
<br>  at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:252)  
<br>  at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161)  
<br>  at Calcular_Stub.recebeDados(Unknown Source)  
<br>  at Cliente.main(Cliente.java:56)  
<br>Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:   
<br>  java.net.MalformedURLException: no protocol: URL_stubs  
<br>  at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:310)  
<br>  at sun.rmi.transport.Transport$1.run(Transport.java:177)  
<br>  at sun.rmi.transport.Transport$1.run(Transport.java:174)  
<br>  at java.security.AccessController.doPrivileged(Native Method)  
<br>  at sun.rmi.transport.Transport.serviceCall(Transport.java:173)  
<br>  at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556)  
<br>  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)  
<br>  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670)  
<br>  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)  
<br>  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)  
<br>  at java.lang.Thread.run(Thread.java:724)  
<br>Caused by: java.net.MalformedURLException: no protocol: URL_stubs  
<br>  at java.net.URL.<init>(URL.java:585)  
<br>  at java.net.URL.<init>(URL.java:482)  
<br>  at java.net.URL.<init>(URL.java:431)  
<br>  at sun.rmi.server.LoaderHandler.pathToURLs(LoaderHandler.java:769)  
<br>  at sun.rmi.server.LoaderHandler.getDefaultCodebaseURLs(LoaderHandler.java:140)  
<br>  at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:169)  
<br>  at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:637)  
<br>  at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:264)  
<br>  at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:214)  
<br>  at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1610)  
<br>  at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515)  
<br>  at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1661)  
<br>  at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1342)  
<br>  at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)  
<br>  at sun.rmi.server.UnicastRef.unmarshalValue(UnicastRef.java:325)  
<br>  at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:307)  
<br>  ... 10 more  
<br>.run(Transport.java:177)  
    at sun.rmi.transport.TransportRemote call problems! java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:   
<br>  java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:   
<br>  java.net.MalformedURLException: no protocol: URL_stubs  
<br>java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:   
<br>  java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:   
<br>  java.net.MalformedURLException: no protocol: URL_stubs  
<br>  at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:353)  
<br>  at sun.rmi.transport.Transport$1.run(Transport.java:177)  
<br>  at sun.rmi.transport.Transport$1.run(Transport.java:174)  
<br>  at java.security.AccessController.doPrivileged(Native Method)  
<br>  at sun.rmi.transport.Transport.serviceCall(Transport.java:173)  
<br>  at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556)  
<br>  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)  
<br>  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670)  
<br>  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)  
<br>  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)  
<br>  at java.lang.Thread.run(Thread.java:724)  
<br>  at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:275)  
<br>  at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:252)  
<br>  at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161)  
<br>  at Calcular_Stub.recebeDados(Unknown Source)  
<br>  at Cliente.main(Cliente.java:56)  
<br>Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:   
<br>  java.net.MalformedURLException: no protocol: URL_stubs  
<br>  at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:310)  
<br>  at sun.rmi.transport.Transport$1.run(Transport.java:177)  
<br>  at sun.rmi.transport.Transport$1.run(Transport.java:174)  
<br>  at java.security.AccessController.doPrivileged(Native Method)  
<br>  at sun.rmi.transport.Transport.serviceCall(Transport.java:173)  
<br>  at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556)  
<br>  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)  
<br>  at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670)  
<br>  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)  
<br>  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)  
<br>  at java.lang.Thread.run(Thread.java:724)  
<br>Caused by: java.net.MalformedURLException: no protocol: URL_stubs  
<br>  at java.net.URL.<init>(URL.java:585)  
<br>  at java.net.URL.<init>(URL.java:482)  
<br>  at java.net.URL.<init>(URL.java:431)  
<br>  at sun.rmi.server.LoaderHandler.pathToURLs(LoaderHandler.java:769)  
<br>  at sun.rmi.server.LoaderHandler.getDefaultCodebaseURLs(LoaderHandler.java:140)  
<br>  at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:169)  
<br>  at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:637)  
<br>  at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:264)  
<br>  at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:214)  
<br>  at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1610)  
<br>  at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515)  
<br>  at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1661)  
<br>  at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1342)  
<br>  at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)  
<br>  at sun.rmi.server.UnicastRef.unmarshalValue(UnicastRef.java:325)  
<br>  at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:307)  
<br>  ... 10 more  
<br>.run(Transport.java:174)  
    at java.security.AccessController.doPrivileged(Native Method)  
    at sun.rmi.transport.Transport.serviceCall(Transport.java:173)  
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556)  
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)  
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670)  
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)  
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)  
    at java.lang.Thread.run(Thread.java:724)  
Caused by: java.net.MalformedURLException: no protocol: URL_stubs  
    at java.net.URL.<init>(URL.java:585)  
    at java.net.URL.<init>(URL.java:482)  
    at java.net.URL.<init>(URL.java:431)  
    at sun.rmi.server.LoaderHandler.pathToURLs(LoaderHandler.java:769)  
    at sun.rmi.server.LoaderHandler.getDefaultCodebaseURLs(LoaderHandler.java:140)  
    at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:169)  
    at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:637)  
    at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:264)  
    at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:214)  
    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1610)  
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515)  
    at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1661)  
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1342)  
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)  
    at sun.rmi.server.UnicastRef.unmarshalValue(UnicastRef.java:325)  
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:307)  
    ... 10 more  


Seguem as Classes:
import java.rmi.Remote;  
import java.rmi.RemoteException;  
  
public interface CalculoInterface extends Remote  
{  
    public String recebeDados(int L,double[] vetA,double[] vetB) throws RemoteException;  
  
} 


import java.rmi.server.UnicastRemoteObject;  
import java.rmi.RemoteException;  
  
public class Calcular extends UnicastRemoteObject implements CalculoInterface  
{  
      
    public Calcular() throws RemoteException{   
        //super() is allways called  
    }   
      
    public String recebeDados(int L, double[] vetA, double[] vetB) {  
        double primSoma=0;  
        double segundaSoma=0;  
        double terceiraSoma=0;  
        double resultado = 0;         
        for(int i=0; i<L; i++){  
            primSoma += vetA<i>*vetB<i>;  
        }  
        for (int i=0;i<L;i++){  
            segundaSoma += Math.pow(vetA<i>,2);  
            terceiraSoma += Math.pow(vetB<i>,2);  
        }  
        resultado = primSoma/(Math.sqrt(segundaSoma+terceiraSoma));   
        return ("O valor da Correlação de Cosini é "+resultado);  
    }  
  
      
}   


import java.rmi.Naming;  
  
public class Servidor  
{  
    public static void main(String[] args)  
    {  
    if (args.length != 1)  
    {  
        System.err.println("\nUsage:\t java ServerWalk objname\n");  
        System.exit(1);  
    } // if()  
    try  
    {  
        Calcular calcular = new Calcular();// create server object  
        String objname = "//localhost/"+args[0];// or String objname = args[0];  
        System.out.println("Registrando " +objname+ "...");  
        Naming.rebind(objname, calcular);// rmiregistry must be running!  
        System.out.println("Registrado");  
    } // try()  
    catch (Exception e)//should be more specific!  
    {  
        System.err.println("Error in main()! " + e);  
        e.printStackTrace();  
        System.exit(2);  
    } // catch()  
  
    //for (;<img src="http://javafree.uol.com.br/forum/images/smiles/icon_wink.gif"> {}// server endless(?) cycle  
    //not necessary as long as there are references to objname in Registry!  
    System.out.println("Object waiting...");  
    } // main()  
}  


import java.net.UnknownHostException;  
import java.rmi.Naming;  
import java.rmi.RemoteException;  
import java.util.Scanner;  
  
public class Cliente{  
      
    private static Scanner ler;   
    static double[] vetA;  
    static double[] vetB;     
    public static void main(String[] args)  
    {  
    CalculoInterface calculo = null;// interface is dealed with like a class!  
    if (args.length != 2)  
    {  
    System.err.println("\nUsage:\t java ClientWalk servhost objname\n");  
    System.exit(1);  
    } // if()  
    try  
    {  
    String objname = "//"+args[0]+"/"+args[1];  
    System.out.println("Procurando pelo Objeto " + objname);  
    calculo = (CalculoInterface) Naming.lookup(objname);// rmiregistry must be running!  
    } // try()  
    catch (Exception e)//should be more specific!  
    {  
    System.err.println("Lookup problems! " + e);  
    e.printStackTrace();  
    System.exit(2);  
    } // catch()  
    try  
    {  
        String resp = null;  
        ler = new Scanner(System.in);  
        int L;  
        System.out.printf("Digite o numero de Dados ");  
        L = ler.nextInt();  
        vetA = new double[L];  
        //System.out.printf(" "+vetA.length);  
        vetB = new double[L];  
        //System.out.printf(" "+vetB.length);  
        for (int i = 0; i <L; i++){  
            System.out.printf("Digite o valor %d de A ",(i+1));  
            vetA<i> = ler.nextDouble();  
        }  
        for (int i = 0; i < L; i++){  
            System.out.printf("Digite o valor %d de B ",i+1);  
            vetB<i> = ler.nextDouble();  
        }  
        for (int i = 0; i < L; i++){  
            System.out.printf("TERMO %d de A %f\n",i+1,vetA<i>);  
        }  
        for (int i = 0; i < L; i++){  
            System.out.printf("TERMO %d de B %f\n",i+1,vetB<i>);  
        }  
        resp = calculo.recebeDados(L,vetA,vetB);  
        System.out.println(" "+resp);     
    } // try()  
    catch (RemoteException re)  
    {  
    System.err.println("Remote call problems! " + re);  
    re.printStackTrace();  
    System.exit(3);  
    } // catch()  
    } // main()  
}  

[
Desde já obrigado pela ajuda :)
Tiago Ferreira

Tiago Ferreira

Responder

Posts

22/09/2013

Tiago Ferreira

Galera, to implementando RMI em java e to com um probleminha aqui, tenho que passar dois vetores e mais o numero de elementos deles como parametro do metodo, mas quando passo ele como parametro da uma exception que não sei o que é.
import java.rmi.server.UnicastRemoteObject;  
import java.rmi.RemoteException;  
  
public class Calcular extends UnicastRemoteObject implements CalculoInterface  
{  
      
    public Calcular() throws RemoteException{   
        //super() is allways called  
    }   
      
    public String recebeDados(int L, double[] vetA, double[] vetB) {  
        double primSoma=0;  
        double segundaSoma=0;  
        double terceiraSoma=0;  
        double resultado = 0;         
        for(int i=0; i<L; i++){  
            primSoma += vetA<i>*vetB<i>;  
        }  
        for (int i=0;i<L;i++){  
            segundaSoma += Math.pow(vetA<i>,2);  
            terceiraSoma += Math.pow(vetB<i>,2);  
        }  
        resultado = primSoma/(Math.sqrt(segundaSoma+terceiraSoma));   
        return ("O valor da Correlação de Cosini é "+resultado);  
    }  
  
      
}   


import java.rmi.Naming;  
  
public class Servidor  
{  
    public static void main(String[] args)  
    {  
    if (args.length != 1)  
    {  
        System.err.println("\nUsage:\t java ServerWalk objname\n");  
        System.exit(1);  
    } // if()  
    try  
    {  
        Calcular calcular = new Calcular();// create server object  
        String objname = "//localhost/"+args[0];// or String objname = args[0];  
        System.out.println("Registrando " +objname+ "...");  
        Naming.rebind(objname, calcular);// rmiregistry must be running!  
        System.out.println("Registrado");  
    } // try()  
    catch (Exception e)//should be more specific!  
    {  
        System.err.println("Error in main()! " + e);  
        e.printStackTrace();  
        System.exit(2);  
    } // catch()  
  
    //for (;<img src="http://javafree.uol.com.br/forum/images/smiles/icon_wink.gif"> {}// server endless(?) cycle  
    //not necessary as long as there are references to objname in Registry!  
    System.out.println("Object waiting...");  
    } // main()  
}  


import java.net.UnknownHostException;  
import java.rmi.Naming;  
import java.rmi.RemoteException;  
import java.util.Scanner;  
  
public class Cliente{  
      
    private static Scanner ler;   
    static double[] vetA;  
    static double[] vetB;     
    public static void main(String[] args)  
    {  
    CalculoInterface calculo = null;// interface is dealed with like a class!  
    if (args.length != 2)  
    {  
    System.err.println("\nUsage:\t java ClientWalk servhost objname\n");  
    System.exit(1);  
    } // if()  
    try  
    {  
    String objname = "//"+args[0]+"/"+args[1];  
    System.out.println("Procurando pelo Objeto " + objname);  
    calculo = (CalculoInterface) Naming.lookup(objname);// rmiregistry must be running!  
    } // try()  
    catch (Exception e)//should be more specific!  
    {  
    System.err.println("Lookup problems! " + e);  
    e.printStackTrace();  
    System.exit(2);  
    } // catch()  
    try  
    {  
        String resp = null;  
        ler = new Scanner(System.in);  
        int L;  
        System.out.printf("Digite o numero de Dados ");  
        L = ler.nextInt();  
        vetA = new double[L];  
        //System.out.printf(" "+vetA.length);  
        vetB = new double[L];  
        //System.out.printf(" "+vetB.length);  
        for (int i = 0; i <L; i++){  
            System.out.printf("Digite o valor %d de A ",(i+1));  
            vetA<i> = ler.nextDouble();  
        }  
        for (int i = 0; i < L; i++){  
            System.out.printf("Digite o valor %d de B ",i+1);  
            vetB<i> = ler.nextDouble();  
        }  
        for (int i = 0; i < L; i++){  
            System.out.printf("TERMO %d de A %f\n",i+1,vetA<i>);  
        }  
        for (int i = 0; i < L; i++){  
            System.out.printf("TERMO %d de B %f\n",i+1,vetB<i>);  
        }  
        resp = calculo.recebeDados(L,vetA,vetB);  
        System.out.println(" "+resp);     
    } // try()  
    catch (RemoteException re)  
    {  
    System.err.println("Remote call problems! " + re);  
    re.printStackTrace();  
    System.exit(3);  
    } // catch()  
    } // main()  
}  


Desde já obrigado pela ajuda :)
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar