Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Mandalor am 23.06.05 - 14:01:26

Titel: Java Applet kann in keine Docs schreiben
Beitrag von: Mandalor am 23.06.05 - 14:01:26
Hallo, ich sitze gerade an einem Applet, welches ich in eine Notesmaske eingebunden habe, ein Kollege, der sich gerade die Sonne auf den bauch scheinen lässe (Urlaub), hat das Teil geschrieben. Das applet soll bei seiner Beendigung in ein Notesdoc daten schreiben. Bei Ihm hat das auch funktioniert, er hat aber einen Eintrag in die Notesini gebastelt, welcher dies ermöglicht. Dies soll aber nicht so bleiben, da so jeder User diesen Eintrag erst einrichten muss. Meine Frage nun, wie kann ich das diesem Applet ermöglichen, trotzdem schreiben zu dürfen?

PS.: Ich kenne Java so gut wie gar nicht! :-[
Titel: Re: Java Applet kann in keine Docs schreiben
Beitrag von: umi am 23.06.05 - 14:20:50
evtl. mal die ECL prüfen ob das Applet irgendwelche Restriktionen dort hat.

gruss umi
Titel: Re: Java Applet kann in keine Docs schreiben
Beitrag von: Mandalor am 23.06.05 - 14:29:45
Wenn du das meinst: Benutzersicherheit->Tätigkeiten anderer->Applets, dann kann ich sagen, das ich da schon alle berechtigungen gegeben habe. Alle Applets dürfen danach also alles!!!

(Habe Notes danch auch schon mal geschlossen, cache gelöscht und wieder geöffnet.)
Titel: Re: Java Applet kann in keine Docs schreiben
Beitrag von: umi am 23.06.05 - 14:31:38
Du Weisst nicht zufällig was er in der INI geändert hat?

Die JavaConsole gibt auch keine Auskunft?

gruss
umi
Titel: Re: Java Applet kann in keine Docs schreiben
Beitrag von: Mandalor am 23.06.05 - 14:44:00
Die Konsole bringt keine Fehler und was er da geändert hat, wusste er auch nicht mehr. Er hatte es in der notesHilfe gefunden, aber d habe ich auch gesucht, außerdem hilft mir das nicht weiter, da es ja nicht über dien eintrag gehen soll.
Titel: Re: Java Applet kann in keine Docs schreiben
Beitrag von: Mandalor am 23.06.05 - 14:59:34
Habe nun der Javakonsole folgende Fehlermeldung abgerungen:

Missing resource appletsecurityexception.Zugriff von Package 'lotus.domino'

COM.ibm.JEmpower.applet.AppletSecurityException: ??

Missing resource appletsecurityexception.Zugriff von Package 'lotus.domino'

COM.ibm.JEmpower.applet.AppletSecurityException: ??


kann damit jemand etwas anfangen / eine Lösung vorschalgen
Titel: Re: Java Applet kann in keine Docs schreiben
Beitrag von: Marinero Atlántico am 23.06.05 - 15:16:10
Das ist sehr merkwürdig.
Vielleicht gibt es eine einfache Einstellung. Ich weiss es nicht.
Vermutlich kannst du anfangen mit dem .policy file der jvm zu arbeiten, aber da hast du bei dem Wetter bestimmt keine Lust zu, v.a. wenn du keine Ahnung von Java hast.
Die Antworten auf notes.net zur Fehlermeldung waren teilweise erschreckend.
Besonders klar ist die Fehlermeldung auch nicht.
Wenn das Applet nicht zu groß ist, schicke es mir einfach per mail.
Vielleicht wird da irgendwo im Code auf eine Notes DB auf File oder was weiss ich zugegriffen. Diese Missing Ressource ist ein Hinweis darauf und ich kann mich daran erinnern, dass das Fehlen von Ressourcen auf die zugegriffen wird zu extra - security exceptions führen.

Ansonsten finde ich es unglaublich blöd von Iris Java Stack Traces zu internationalisieren.
Das vermindert nämlich deren Googlebarkeit gewaltig.
Aber vermutlich die das  für weltoffen. Naja.  :-:

Ich predige hier seit 3 Jahren, dass man mit Applets in 99% aller Fälle nicht glücklich wird.

Axel
Titel: Re: Java Applet kann in keine Docs schreiben
Beitrag von: Mandalor am 23.06.05 - 15:25:54
Ja, es wird auf eine DB zugegriffen, der Fehler tritt das erste mal auf, wenn ich aus der session die DB printen möchte.

Hier mal ein paar Zeilen Code (die Write Funktion, die das Doc Füllen sollte):

private boolean writeData() throws Exception {
      getHistoryForSave();
      boolean success = true;
      session = this.openSession();
//      Ab hier funktioniert es nicht mehr!!!
      System.out.println((String) "Session: " + session.getServerName());
      System.out.println((String) this.parameter.get(DEVPasswordApplet.DATABASE));
      
      db = session.getDatabase((String) this.parameter.get(DEVPasswordApplet.SERVER),
            (String) this.parameter.get(DEVPasswordApplet.DATABASE));
      System.err.println("AccessLevel: " + db.getCurrentAccessLevel());
      String unid = (String) this.parameter.get(DEVPasswordApplet.DOCUMENT_UNIQUE_ID);
      if (db.isOpen() == true) {
         try {
            doc = db.getDocumentByUNID(unid);
         } catch (NotesException nE) {
            System.out.println("create new doc...");
            doc = db.createDocument();
            doc.replaceItemValue("form", "Muser");
            doc.setUniversalID(unid);
         }
         if (doc != null) {
            System.out.println("Setting fields...");
            doc.replaceItemValue("in_Password_Hist", this.getHistoryForSave());
            doc.replaceItemValue("in_Password", Crypter.encryptString(this.actPwd));
            doc.save(true, false, true);
         } else {
            System.err.println("Doc not found...");
         }
      } else {
         System.err.println("Database \"" + db.getFilePath() + "\" has not been opened yet");
      }
      return success;
   }


Titel: Re: Java Applet kann in keine Docs schreiben
Beitrag von: Marinero Atlántico am 23.06.05 - 15:28:40
Probierst du das zufällig lokal aus und vorher wars auf dem Server?
Titel: Re: Java Applet kann in keine Docs schreiben
Beitrag von: Mandalor am 23.06.05 - 15:38:36
nein, es war immer auf dem Server,hat nur vorher schon nur mit dem Flag in der Notes.ini funktioniert.
Titel: Re: Java Applet kann in keine Docs schreiben
Beitrag von: Marinero Atlántico am 23.06.05 - 15:43:01
und hast du jetzt den flag in der notes.ini gesetzt?
Titel: Re: Java Applet kann in keine Docs schreiben
Beitrag von: Mandalor am 23.06.05 - 15:48:28
Nein, 1. Weis ich nich, wie der heißt, 2. hat es mit flag funktioniert (muss ich daher eigentlich nicht mehr testen) und 3. soll es ja ohne Flag funktionieren.
Titel: Re: Java Applet kann in keine Docs schreiben
Beitrag von: Marinero Atlántico am 23.06.05 - 16:08:33
Das erklärt zumindest die Exception  ;D
Der Name sollte aber irgendwo im Source Code zu finden sein.
Ich schlage vor, du suchst das erst einmal und dann überlegen wir uns eine Lösung wie man das ohne Notes.ini machen kann.
Titel: Re: Java Applet kann in keine Docs schreiben
Beitrag von: Mandalor am 23.06.05 - 16:13:08
Du verstehst da was falsch, der Flag aus der ini wird nicht im Applet ausgewertet, der gibt der sagt Notes, das Applets schreiben dürfen (so wurde mir das erklärt).

Ich kann mir das nur so erklären:

1. es fehlt eine Ressource ??? -->abgelitten von der Fehlermeldung
2. Ich muss dem Applet noch bestimmte Rechte geben --> nur wo?


Warum sind Sourcecodes nich wie Kobolde, die könnte man dann mit Gewalt zu Ihrem Glück zwingen >:D


Hier noch mal der Rest der Fehlermeldung:
at COM.ibm.JEmpower.applet.AppletSecurity.maybeFailSecurity(AppletSecurity.java:606)

   at COM.ibm.JEmpower.applet.AppletSecurity.maybeFailSecurity(AppletSecurity.java:579)

   at COM.ibm.JEmpower.applet.AppletSecurity.checkRuntimePermission(AppletSecurity.java:1156)

   at COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(AppletSecurity.java:1384)

   at COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(AppletSecurity.java:1322)

   at java.lang.SecurityManager.checkPackageAccess(SecurityManager.java:1521)

   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:438)

   at java.lang.ClassLoader.loadClass(ClassLoader.java:448)

   at java.lang.ClassLoader.findSystemClass(ClassLoader.java:898)

   at COM.ibm.JEmpower.applet.AppletClassLoader.loadClass(AppletClassLoader.java:207)

   at COM.ibm.JEmpower.applet.AppletClassLoader.loadClass(AppletClassLoader.java:188)

   at com.ulc.DEVPassword.DEVPasswordApplet.writeData(DEVPasswordApplet.java:277)

   at com.ulc.DEVPassword.DEVPasswordApplet.notesAppletDestroy(DEVPasswordApplet.java:265)

   at lotus.domino.AppletBase.destroy(Unknown Source)

   at COM.ibm.JEmpower.applet.AppletFrame.run(AppletFrame.java:544)

   at java.lang.Thread.run(Thread.java:513)
Titel: Re: Java Applet kann in keine Docs schreiben
Beitrag von: Marinero Atlántico am 23.06.05 - 16:42:24
Es sollte das Feld $Restricted im Designdokument sein. Keine Ahnung wie du da jetzt dran kommst. Ich code keine Applets. Vielleicht steht in der Properties von dem Gestaltungselement Applet etwas in der Eigenschaftenbox im zweiten Tab. Da steht es zumindest bei Agents. .
Titel: Re: Java Applet kann in keine Docs schreiben
Beitrag von: Ralf_M_Petter am 24.06.05 - 08:27:57
Mit dem notes.ini Eintrag meinst du aber nicht zufällig EnableJavaApplets=1

Grüße

Ralf
Titel: Re: Java Applet kann in keine Docs schreiben
Beitrag von: Mandalor am 24.06.05 - 11:20:55
wie gesagt, ich kenne ihn nicht! aber ich werde es mal damit versuchen.