RMI Fehlermeldung

Status
Nicht offen für weitere Antworten.
F

Flyer

Gast
hi!

ich versuche eine RMI-Programm zu schreiben, doch es gibt mir immerfolgende Meldung beim ausführen:
java.rmi.ServerException: Server RemoteException; nested exception is:
java.rmi.AccessException: Registry.rebind localhost.swisslife.ch/127.0.0
.1 != NT4257/134.38.4.227

hier die klassen:
-->diese führe ich aus
Code:
import java.rmi.*;

public class TimeServiceRegistration
{
  public static void main(String[] args)
  {
    System.setSecurityManager(new RMISecurityManager()); 
    try {
      TimeServiceImpl tsi = new TimeServiceImpl();
      Naming.rebind("TimeService", tsi);
      System.out.println("Done register");
    } catch (Exception e) {
		System.err.println("TimerServiceRegister:"+e.toString());
      System.exit(1);
    }
  }
}

--> diese wird in der anderen Klasse erstellt:
Code:
import java.rmi.*;
import java.rmi.server.*;
import java.util.*;

public class TimeServiceImpl extends UnicastRemoteObject implements TimeService
{
  public TimeServiceImpl() throws RemoteException {
  }

  public String getTime() throws RemoteException{
    GregorianCalendar cal = new GregorianCalendar();
    StringBuffer sb = new StringBuffer();
    sb.append(cal.get(Calendar.HOUR_OF_DAY));
    sb.append(":" + cal.get(Calendar.MINUTE));
    sb.append(":" + cal.get(Calendar.SECOND));
    return sb.toString();
  }

  public TimeStore storeTime(TimeStore store) throws RemoteException {
    store.setTime(getTime());
    return store;
  }
}

danke für eure antwort!

Gruss Flyer
 

foobar

Top Contributor
Versuchs mal hiermit:
Code:
import java.rmi.*;

public class TimeServiceRegistration
{
  public static void main(String[] args)
  {
    System.setSecurityManager(new RMISecurityManager());
    try {
      TimeServiceImpl tsi = new TimeServiceImpl();
      LocateRegistry.createRegistry(Registry.REGISTRY_PORT);M
      Naming.rebind("TimeService", tsi);
      System.out.println("Done register");
    } catch (Exception e) {
      System.err.println("TimerServiceRegister:"+e.toString());
      System.exit(1);
    }
  }
}
Erbt das Interface TimeService auch von Remote?
 
F

Flyer

Gast
ja TimeService erbt auch von Remote...wenn ich deinen Code ausführe gibt es neue Fehler:

TimerServiceRegister:java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is:
java.io.EOFException
java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:3368 accept,resolve)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkAccept(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.checkAcceptPermission(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.checkAcceptPermission(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
 
F

Flyer

Gast
DANK...jetzt gehts...aber warum gibt es das problem mit dem security manager...mann kann doch die java.policy datei anpassen...oder nicht?
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben