Hallo zusammen
Ich brauch mal wieder eure Hilfe!
Folgendes Problem:
Ich habe ein Programm das mir Termine aus einer Excel ausliest und diese in Microsoft Outlook überträgt. Das klappt richtig gut und die SW wird wohl bald bei uns im Geschäft rollouted. Nennen wir die SW einfachheitshalber Importer.
Nun ist aber von verschieden Testusern der Wunsch geäussert worden, dass sie die Standarteinstellung wie z.B. Reminder beeinflussen resp. selbst definieren möchten.
Ich habe also eine weiter kleine Applikation geschrieben mit der ein Userprofil erzeugt werden kann. Nennen wir sie mal MyProfile. Wenn der User sein Profil speichert wird ein Objekt der Klasse "Userprofile" auf dem Server abgelegt. Der Importer soll nun beim nächsten Start das Userprofil vom Server laden und die Standarteinstellungen mit jenen aus dem Userprofil überschreiben.
Der User hat ausserdem die Möglichkeit sein Profil zu editieren. D.h. MyProfile lädt das gespeicherte Objekt vom Server, zeigt dem User seine Einstellungen an und speichert diese nach der Mutation wieder auf dem Server.
Um das Objekt "Userprofile" zu speichern verwende ich folgenden Code:
zum Laden des Profils folgenden Code:
Für MyProfile klappt das wunderbar. Ich kann das Profil speichern und wieder ladend und editieren sooft ich will. Kein Problem.
Aber wenn nun der Importer das Profil laden soll (der Importer verfügt natürlich über dieselben Klassen wie MyProfile, sofern diese zum Laden und verarbeiten des Profils nötig sind) wird eine Exception geworfen:
Ich nehme mal an, dass es daran liegt, dass beim Speichern des Profils die Zugehörigkeit zur Applikation und zum Paket ebenfalls mit gespeichert wird und der Importer dann auf Grund der anderen Namen und Paketbezeichnungen das File nicht laden kann:
Gibt es da eine Möglichkeit das zu umgehen? Ev als Libary anhängen statt direkt im Paket? Hab gerade keinen Plan was ich am schlausten tun soll...
Besten Dank schon mal im Voraus für eure Hilfe.
Gruss
Nahum
Ich brauch mal wieder eure Hilfe!
Folgendes Problem:
Ich habe ein Programm das mir Termine aus einer Excel ausliest und diese in Microsoft Outlook überträgt. Das klappt richtig gut und die SW wird wohl bald bei uns im Geschäft rollouted. Nennen wir die SW einfachheitshalber Importer.
Nun ist aber von verschieden Testusern der Wunsch geäussert worden, dass sie die Standarteinstellung wie z.B. Reminder beeinflussen resp. selbst definieren möchten.
Ich habe also eine weiter kleine Applikation geschrieben mit der ein Userprofil erzeugt werden kann. Nennen wir sie mal MyProfile. Wenn der User sein Profil speichert wird ein Objekt der Klasse "Userprofile" auf dem Server abgelegt. Der Importer soll nun beim nächsten Start das Userprofil vom Server laden und die Standarteinstellungen mit jenen aus dem Userprofil überschreiben.
Der User hat ausserdem die Möglichkeit sein Profil zu editieren. D.h. MyProfile lädt das gespeicherte Objekt vom Server, zeigt dem User seine Einstellungen an und speichert diese nach der Mutation wieder auf dem Server.
Um das Objekt "Userprofile" zu speichern verwende ich folgenden Code:
Java:
private void saveUserProfile(Userprofile pUserprofile, Initconfig pInitconfig) {
String url = pInitconfig.getmTXT_FileLoader().getmRows()[2] + createFileName(pUserprofile, pInitconfig);
File myFile = new File(url);
try {
//create a new FileOutputStream
FileOutputStream outFile = new FileOutputStream(myFile);
//create a new ObjectOutputStream
ObjectOutputStream out = new ObjectOutputStream(outFile);
//write the userprofil into the file
out.writeObject(pUserprofile);
} catch (Exception e) {
/*Do nothing on exception*/
e.printStackTrace();
}//end catch
}//end methode
zum Laden des Profils folgenden Code:
Java:
private Object loadObject(String pUrl) {
Object ret = null;
File myFile = new File(pUrl);
try {
//create a new FileInputStream
FileInputStream inFile = new FileInputStream(myFile);
//create a new ObjectInputStream
ObjectInputStream in = new ObjectInputStream(inFile);
//read the userprofile from the file
ret = (Object) in.readObject();
} catch (IOException ioe) {
mStatus = NOLOAD;
mException = ioe;
ioe.printStackTrace();
} catch (Exception e) {
mStatus = EXCEPTION;
mException = e;
e.printStackTrace();
}//end catch
return ret;
}//end methode
Für MyProfile klappt das wunderbar. Ich kann das Profil speichern und wieder ladend und editieren sooft ich will. Kein Problem.
Aber wenn nun der Importer das Profil laden soll (der Importer verfügt natürlich über dieselben Klassen wie MyProfile, sofern diese zum Laden und verarbeiten des Profils nötig sind) wird eine Exception geworfen:
Java:
java.lang.ClassNotFoundException: tps_profile_001.BusinessLogic.Userprofile
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:266)
at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:622)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1593)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1514)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1750)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
at tp_001_prototype.Database.ObjectLoader.loadObject(ObjectLoader.java:86)
at tp_001_prototype.Database.ObjectLoader.<init>(ObjectLoader.java:35)
at tp_001_prototype.GUI.TourSync.loadUserProfile(TourSync.java:476)
at tp_001_prototype.GUI.TourSync.getUserProfile(TourSync.java:460)
at tp_001_prototype.GUI.TourSync.<init>(TourSync.java:397)
at tp_001_prototype.Main.main(Main.java:20)
Ich nehme mal an, dass es daran liegt, dass beim Speichern des Profils die Zugehörigkeit zur Applikation und zum Paket ebenfalls mit gespeichert wird und der Importer dann auf Grund der anderen Namen und Paketbezeichnungen das File nicht laden kann:
Java:
tps_profile_001.BusinessLogic.Userprofile
Gibt es da eine Möglichkeit das zu umgehen? Ev als Libary anhängen statt direkt im Paket? Hab gerade keinen Plan was ich am schlausten tun soll...
Besten Dank schon mal im Voraus für eure Hilfe.
Gruss
Nahum