Autor Thema: Fehler beim Anhängen von Dateien an Notes 6 (mit Java)  (Gelesen 3666 mal)

Offline Pinhead

  • Frischling
  • *
  • Beiträge: 23
  • Geschlecht: Männlich
  • Doh
Hi,

ich habe eine WebAnwendung, die es dem Benutzer ermöglichen soll E-Mails zu verschicken. Die sollen auch Anhänge verwalten können. Ich lade also den Anhang hoch und erstelle die Datei auf dem Server in einem Temporären Verzeichnis. Wenn ich die Datei von da jetzt an ein rti Objekt embedden will dann bekomme ich folgenden Notes Fehler

Notes error: You are not authorized to perform that operation

Es scheint also als ob mir ein Recht fehlt. Leider kenne ich mich mit der Rechte vergabe bei Notes 6 nicht so aus. Kann mir jemand sagen warum dieser Fehler auftritt ?


 
 

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:Fehler beim Anhängen von Dateien an Notes 6 (mit Java)
« Antwort #1 am: 22.01.04 - 10:15:05 »
Kannst Du mal Deinen Code hier posten, dann kommen andere vielleicht dahinter.

Ciao
Don Pasquale

Offline Pinhead

  • Frischling
  • *
  • Beiträge: 23
  • Geschlecht: Männlich
  • Doh
Re:Fehler beim Anhängen von Dateien an Notes 6 (mit Java)
« Antwort #2 am: 22.01.04 - 10:28:54 »
public boolean execute() throws TechnischeException {
      boolean ret = false;
      try {
         if (nachricht != null) {
            session = na.connect();
            Database mailbox = null;
            mailbox =
               session.getDatabase(
                  session.getServerName(),
                  IKonstanten.NOTES_DB_MAILBOX);

            //Sicherstellen das DB geöffnet ist...
            if (!mailbox.isOpen()) {
               mailbox.open();
            }
            Document doc = mailbox.createDocument();

            if (doc != null) {

               RichTextItem rti =
                  doc.createRichTextItem(IKonstanten.NOTES_FIELD_BODY);

               rti.appendText(nachricht.getBody());

               Vector attachments = nachricht.getAttachments();

               if ((attachments != null) && (attachments.size() > 0)) {
                  String attachDir =
                     PropertyHelper.getPropertyHelper().getProperty(
                        "ATTACH_DIR");
                  ErstelleAnhangCmd eac = new ErstelleAnhangCmd();
                  eac.setNachricht(nachricht);
                  eac.execute();
                  RichTextItem anhang =
                     doc.createRichTextItem(
                        IKonstanten.NOTES_FIELD_ATTACHMENT);
                  for (int i = 0; i < attachments.size(); i++) {

                     //DTOAnhang dtoa = (DTOAnhang) attachments.get(i);
                     logger.info(
                        "Anhang: " + attachDir + "/" 
                           + ((DTOAnhang) attachments.get(i))
                              .getDateiname());
                     anhang.embedObject(
                        EmbeddedObject.EMBED_ATTACHMENT,
                        "",
                        attachDir
                           + "/"
                           + ((DTOAnhang) attachments.get(i))
                              .getDateiname(),
                        "Anhang");

                     logger.debug("Angehängt");
                  }
               }

               doc.appendItemValue(
                  IKonstanten.NOTES_FIELD_FROM,
                  nachricht.getFrom());
               doc.appendItemValue(
                  IKonstanten.NOTES_FIELD_SUBJECT,
                  nachricht.getSubject());
               doc.appendItemValue(
                  IKonstanten.NOTES_FIELD_TO,
                  nachricht.getTo());
               doc.appendItemValue(
                  IKonstanten.NOTES_FIELD_VSNR,
                  nachricht.getVsnr());
               DateTime dt = session.createDateTime(new Date());
               doc.appendItemValue(IKonstanten.NOTES_FIELD_DATE, dt);
               doc.appendItemValue(
                  IKonstanten.NOTES_FIELD_RECIPIENTS,
                  nachricht.getTo());

         
               //setzen des Maskennamens
               doc.appendItemValue(
                  IKonstanten.NOTES_FIELD_FORM,
                  IKonstanten.NOTES_FORM_MAIL_MEMO_NAME);

               if (doc.save()) {

                  logger.info("Dokument gespeichert!");
                  ret = true;
               } else {
                  logger.info(
                     "Dokument konnte nicht gespeichert werden!");
                  ret = false;
               }
            }

         }

      } catch (NotesException nex) {
         logger.error("Notes Fehler : ", nex);
         TechnischeException te =
            new TechnischeException(
               "Fehler: "
                  + (new Date()).getTime()
                  + " Nachricht konnte nicht versandt werden");
         logger.error("Fehler", te);
         throw te;
      }
      return ret;
   } //execute

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:Fehler beim Anhängen von Dateien an Notes 6 (mit Java)
« Antwort #3 am: 22.01.04 - 14:37:45 »
Vielleicht ist das gar kein Rechteproblem unter Lotus sondern unter dem Betriebssystem. Hat der User denn überhaupt Lese-und Schreibrechte auf dem Verzeichnis auf dem Server ?

Ciao
Don Pasquale

Offline Pinhead

  • Frischling
  • *
  • Beiträge: 23
  • Geschlecht: Männlich
  • Doh
Re:Fehler beim Anhängen von Dateien an Notes 6 (mit Java)
« Antwort #4 am: 22.01.04 - 14:51:38 »
Ja  der User hat Rechte da hinzuschreiben, weil die Dateien ja auf dem Server erscheinen. Aber das anhängen funktioniert nicht

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:Fehler beim Anhängen von Dateien an Notes 6 (mit Java)
« Antwort #5 am: 22.01.04 - 14:54:57 »
An welcher Stelle hast Du den Code platziert ?
In welchem Ereignis ?
Ciao
Don Pasquale

Offline Pinhead

  • Frischling
  • *
  • Beiträge: 23
  • Geschlecht: Männlich
  • Doh
Re:Fehler beim Anhängen von Dateien an Notes 6 (mit Java)
« Antwort #6 am: 23.01.04 - 06:45:57 »
Der Code steht in einem CommandBean. Dieses CommandBean wird von einem Buissness Delegate aufgerufen. Das ganze passiert wenn der Benutzer in der Web Oberfläche auf Senden klickt

Offline Axel_Janssen

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 769
Re:Fehler beim Anhängen von Dateien an Notes 6 (mit Java)
« Antwort #7 am: 24.01.04 - 00:16:28 »
was steht in
IKonstanten.NOTES_DB_MAILBOX  ???

Die Mail.Box des Servers?
Ich würde darüber nachdenken, dir vom Notes admin einen "technischen User" erstellen lassen und von dessen Mail-Datenbank die Mail zu verschicken.

Auf was für einem Server läuft diese Webanwendung?
Greifst du "von aussen" auf Notes zu? Aus Websphere? Tomcat?

Wie authentifizierst du dich in Notes? Was steht in na.connect()

Rufe auf jeden Fall recycle() für Notes-Objekte auf. Ansonsten hast du nicht geschlossene RPC-connections.
Guckst du hier:
http://www-10.lotus.com/ldd/today.nsf/lookup/Java_access_2
Suche dort nach recycle. Dann bist du im richtigen Abschnitt.

Gruß Axel

Gruß Axel




« Letzte Änderung: 24.01.04 - 00:21:41 von Axel_Janssen »
... design patterns are abstract designs that help identify the structure and elements involved in a specific design solution. From this, a concrete implementation can be produced.
Kyle Brown

Offline Axel_Janssen

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 769
Re:Fehler beim Anhängen von Dateien an Notes 6 (mit Java)
« Antwort #8 am: 24.01.04 - 10:05:21 »
Der Code steht in einem CommandBean. Dieses CommandBean wird von einem Buissness Delegate aufgerufen. Das ganze passiert wenn der Benutzer in der Web Oberfläche auf Senden klickt
Das ist ein sehr interessantes Thema. Bitte verstehe das folgende nicht als Oberlehrer-Attacke. Ich bin selbst dabei, da ein wenig Ordnung in meinen Kopf zu bringen. Deshalb hier zur Diskussion:


Warum Business Delegate.
Ist es nicht eigentlich eher eine Session Facade, die deine CommandBeans erzeugt?
Quatsch, weiss noch nicht so richtig warum.

Zumindest Marinescu verwendet in seinem Buch "EJB Design Patterns" Business Delegate nur im Sinne eines zusätzlichen Layers zum Zugriff auf die EJB-Facade vom Client aus.
Das Buch vom Sun Java Center ist in Hannover. Der Inhalt wg. Serverausfall z.Zt. nicht online verfügbar: http://java.sun.com/developer/technicalArticles/J2EE/patterns/
 :-[
Adam Bien beschreibt Business Delegate auch als Mittel zur Kappselung der besonderen Zugriffslogik des Remote-Zugriffs gegenüber dem Client. Wiederum zum Zugriff auf eine Session Facade.  

Hier läuft das aber IMHO alles über Plain Old Java Objects. Da gibt es keine "besondere Zugriffslogik". Also ist es eher eine Session Facade.  

(wird fortgesetzt)
oder ???

Gruß Axel

PS: falls jemand das noch liest. Das hört sich wissenschaftlicher an als es ist. Patterns sind eine Art best practices für OO-Programmierer. Es gibt dafür Kataloge, wo man nachschlagen kann. Eigentlich eine sehr sinnvolle Erfindung ähem Entdeckung.
« Letzte Änderung: 24.01.04 - 21:58:38 von Axel_Janssen »
... design patterns are abstract designs that help identify the structure and elements involved in a specific design solution. From this, a concrete implementation can be produced.
Kyle Brown

Offline Pinhead

  • Frischling
  • *
  • Beiträge: 23
  • Geschlecht: Männlich
  • Doh
Re:Fehler beim Anhängen von Dateien an Notes 6 (mit Java)
« Antwort #9 am: 26.01.04 - 08:18:27 »
Hi,

ja du hast Recht, mit dem Session Fassade. Diese Pattern wird auch noch verwandt. Danke auch für den Tip mit dem recycle.

Zu den anderen Fragen. In der IKonstanten steht die Mailbox des Servers.

Die Anwendung läuft auf einem Websphere Server. Ich authetifiziere mich im Moment noch über meine ID. Die wird aber später durch einen technischen Benutzer ersetzt.

Der Code vom na.connect()
public Session connect() throws NotesException {
      logger.log(Level.INFO, serverName + " " + userName + " " + userPwd); //Wird im Konstruktor befüllt
      if (session == null) {
         session = NotesFactory.createSession(serverName, userName, userPwd);
         server = session.getServerName();
      }
      return session;
   } //connect;

Offline Pinhead

  • Frischling
  • *
  • Beiträge: 23
  • Geschlecht: Männlich
  • Doh
Re:Fehler beim Anhängen von Dateien an Notes 6 (mit Java)
« Antwort #10 am: 26.01.04 - 11:21:02 »
Freudig kann ich verkünden das es funktioniert.

Kein Fehler im Code nur zu wenig Rechte. Der Benutzer der die Nachrichten in der Mail.box erstellt muss mindestens Editor Recht haben.

Bis demnächst

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz