Hallo Pitiyankee,
zuerst mal danke für die prompte Rückmeldung.
Mit der Vermutung der Berechtigung (Leser/Autorenfleder) lagst du richtig.
Es gab Leser- und Autorenfelder im Dokument.
Ich habe zu Testzwecken nun nachfolgendes getan:
- Alle Leser / Autorenfelder im Dokument komplett raus gelöscht
- In der ACL den Anonymous auf Zugriff: „Administrator“ gesetzt
Ich erhalte aber leider immer noch diese Fehlermeldung.
Ich bin leider kein Experte im Bezug mit Java Agenten und Lotus Notes.
Vielleicht könntest du mir die unten aufgeführten Fragen kommentieren, das würde mir sicher weiterhelfen.
Hier die Fragen, die sich für mich nach Deinem Posting ergeben haben:
1) Wenn ich dich richtig verstehe, wird ein Java-Agent der auf die http Enging von Domino zugreift nicht im Namen des Dominoservers ausgeführt (wie Notes Agenten), sondern greift immer als Anonymous zu?
Oder welche Berechtigung benötigt ein solcher Agent denn?
(Normale Java Agenten auf dem Server laufen aber im Kontext des Servers. Hier habe ich schon Agenten laufen, die auf Dokumente mit Autorenfeldern zugreifen!)
2) Hat das obige Problem vielleicht irgendwas mit den Einstellungen „Öffentliches Dokument“ zu tun?
3) Benötigt die Anwendung irgendwelche Designelemente, die diese Art von Java-Agent Aufruf erwartet? (z.B.: DefaultView, usw.)
4) Gibt es eine Möglichkeit, den Java Code der auf den http Task zugreift so auszuführen, dass dieser mit einer Berechtigung auf die DB ausgeführt wird, die nicht über den Anonymous läuft? (z.B.: im Kontext des Servers läuft!) Ziel wäre, mit Dokumente zu arbeiten, die Leser und Autorenfelder besitzen.
5) Kennst du vielleicht einen einfacheren bzw. besseren Weg ein Dokument als HTML/Mime aus dem Backend zu erhalten um dies als EML-Datei abzuspeichern?
6) Wenn ich einen System.err.println() im java-code ausführe, wird dieser in der Domino Konsole immer als "Agent error ...." ausgegeben. Gibt es eine Möglichkeit diesen irreführende Hinweis zu umgehen?
Grüße und Danke für deine Mühe
Legolas
//Dokument aus der Ansicht holen und transformieren
AgentContext agentContext = session.getAgentContext();
db = agentContext.getCurrentDatabase();
view = db.getView("aTest1");
doc = view.getFirstDocument();
System.err.println(" ");
System.err.println("#### Start ####");
System.err.println("doc.getUniversalID(): " + doc.getUniversalID());
String docid = doc.getUniversalID();
String notesURL = doc.getHttpURL();
System.err.println("notesURL: " + notesURL);
URL docURL =new URL(notesURL);
System.err.println("100");
InputStream streamIn = docURL.openStream();
System.err.println("110");
InputStreamReader str = new InputStreamReader(streamIn);
System.err.println("120");