RMI - Activation

kobi67

Grünschnabel
hallo,

ich möchte anstelle von UnicastRemoteObject die Klasse Activatable für meine Serveranwendung benutzen, um durch den RMI-Daemon "rmid" meine registrierten Dienste automatisch (ohne laufenden Serverprozess etc. ) starten zu lassen.
Leider stosse ich schon in einer Beispielanwendung auf folgende Exception:
java.rmi.ServerException: RemoteException ....usw.....java.rmi.UnmarshalException.....usw......
java.lang.ClassNotFoundException: java.rmi.server.RemoteObjectInvocationHandler


Als Klassen habe ich eine Interface-Klasse, deren Implementierung und eine sog. ServerFactory, welche den rmid mit den nötigen Informationen versorgen soll. Die Fehlermeldung erfolgt beim Aufruf der main() der ServerFactory:

Code:
if (System.getSecurityManager() == null) {
System.setSecurityManager(new SecurityManager()); }

String implClass = "ServerInterfaceImpl";
String policy = System.getProperty("policy", "group.policy");
String implCodebase = System.getProperty("impl.codebase");
String filename = System.getProperty("file", "");
Properties props = new Properties();
props.put("java.security.policy", policy);
props.put("java.class.path", "no_classpath");
props.put("impl.codebase", implCodebase);
if (filename != null && !filename.equals("")) {
props.put("file", filename); }

ActivationGroupDesc activationgroup = new ActivationGroupDesc(props, null);
ActivationGroupID groupID = ActivationGroup.getSystem().registerGroup(activationgroup);
MarshalledObject data = null; //ohne besondere Daten
if (filename != null && !filename.equals("")) {
    data = new MarshalledObject(filename);	}
ActivationDesc desc = new ActivationDesc(groupID, implClass, implCodebase, data);
Remote stub = Activatable.register(desc);
String name = System.getProperty("name");
try {
	LocateRegistry.getRegistry().rebind(name, stub);
	//Naming.rebind(name,stub);
}catch(Exception e) {
	System.out.println("Registry-FEHLER - " +e.toString());
	System.out.println("Factory beendet");
	System.exit(-1);
  }

Ich gehe mal davon aus, dass die Policy-Dateien mit ihren Pfadangaben passen, da bis zum Eintrag in die Registry keinerlei Fehler auftreten !? Ich kann natürlich auch den ganzen code hier posten bzw. wenn jemand eine Idee hat und die Files geschickt bekommen möchte?!

Bin für jeden Hinweis dankbar.

Schöne Grüsse
kobi
 
sollte jemand einmal das gleiche problem haben, ist er voraussichtlich genau so bloed wie ich:

habe neben java 5.0 die alte sdk version 1.4.x auf meinem system gelassen und dummerweise den systempfad zur java/bin nicht geaendert :-( und damit noch keinen RemoteObjectInvocationHandler.
 

Neue Beiträge

Zurück