RMI Methodenaufrufe mit unterschiedlichen parametern liefern gleiche Ergebnisse

T

Tobsen

Gast
Hi,
ich hab ein RMI programm geschrieben, welches an nen Server ne Matrix schickt und dort berechnungen durchführt und die ergebnisse zurückschickt, das klappt auch wunderbar, jetzt hab ich das problem, wenn ich die Methode mit ner anderen Matrix aufrufe bekomme ich die gleichen ergebnisse... was völliger schwachsinn ist...
jemand ne ahnung was das sein könnte?
Mal bischen entsprechenden Code:
Java:
import java.rmi.Naming;
import java.rmi.RMISecurityManager;
import java.rmi.registry.LocateRegistry;

public class ComputeServer
{
   public static void main(String args[])
   {
        RMISecurityManager sec=new RMISecurityManager();
        System.setSecurityManager(sec);
      try
      {
        
         LocateRegistry.createRegistry(port);
         System.out.println("create RemoteObject");
         ComputeInterfaceImpl remObj = new ComputeInterfaceImpl();
         System.out.println("try : naming RemoteObject");
         Naming.rebind("//wwwwwwww:port/Server", remObj);
         System.out.println("-- server ready, waiting for clients --");

      }
      catch(Exception ex)
      {
         ex.printStackTrace();
      }
   }
}

und

Java:
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject ;
import matrix.*;

public class ComputeInterfaceImpl extends UnicastRemoteObject implements ComputeInterface
{
   public ComputeInterfaceImpl() throws RemoteException
   {
       super();
   }
    public double[][] eigv(double[][] A) throws RemoteException
   {
	return Matrix.geteigval(A);
   }
}

und Aufurf auf clientseite mit

Java:
ComputeInterface remRef =(ComputeInterface)Naming.lookup("//wwwwww:port/Server");
e1=remRef.eigv(matrixgen(20,19,19));
e2=remRef.eigv(matrixgen(30,29,29));

für e1 wird das richtige ergebnis berechnet, aber für e2 gibt er mir das gleiche zurück...
danke schonmal ich hoffe mir kann jemand helfen
mfg
 
Zuletzt bearbeitet von einem Moderator:
T

Tobsen

Gast
kann vielleicht nen mod die angebenen URLs etwas verfälschen?...
hab ich trottel vergessen und nun kann ich nciht mehr editieren...
 
S

SlaterB

Gast
editiert

-----

bist du denn sicher, dass sich die Matrizen unterscheiden, Ausgabe vorher?

ach, und wenn du auch den Server unter Kontrolle hast, dann logge auch dort was ankommt,
Zwischenschritte der Berechnung usw.
 

Tobsen

Mitglied
Jo, ganz sicher, habs auch mit einer so generierten matrix und einheitsmatrix probiert...
und lokal mit dem selben eigenwertlöser gegengeprüft müssten vershciedene ergebnisse rauskommen...
 

Tobsen

Mitglied
wie geil...
sry liegt an mir ...
kurz zur erklärung hab mir da jeztt aufm server auch paar sachen ausgeben lassen und folgendes festgestellt...
erstmal vorweg zum paket matrix, weiß nicht inwieweit ihr euch mit matrizzen auskennt, auf jeden fall ist das ne selbstgeschriebene bibliothek die alle möglichen dinge mit matrizzen anstellen kann....
uA eigenwerte berechnen oder invertieren oder sowas...
jetzt hab ich anstatt die eigenwerte zu berechnen mal invertiert und alles funktioniert 1A...
problem liegt also darin wie ich eigenwerte berechne dazu erstelle in matrix.* eine Klasse in der eigenwerte/vektoren gespeichert sind und lese diese nur aus... und darin hab ich bissel ins klo gegriffen...
quasi wird das nicht neu berechnet diese interne klasse bei aufruf mit neuer matrix ...
naja aber danke trotzdem :)
 
S

SlaterB

Gast
wenn der Rückgabewert immer einundasselbe Array-Objekt ist, nur mit unterschiedlichen Inhalt,
dann kann es das Problem geben, dass in der zweiten Übertragung nur die Information 'dasselbe nochmal' steht
(edit: zumindest bei ObjectStreams in Java, aber ist ja nun egal)
 

Ähnliche Java Themen


Oben