So habe den Fehler gefunden, im "javax.naming.directory.Attribute" gibt es die Methode get()die man verwenden sollte
Das heist attrs.get("uid") gibt das Objekt ansich zurück und mit der Methode attrs.get("uid").get() bekommt man den Wert. Darum konnte Notes nichts damit anfangen beim Zuweisen.
System.out.println("Result= " + attrs.get("uid")) => Funktioniert auch ohne get(), aus den von Axel erklärten gründen.
THX for Help ArconHier vollständigkeitshalber der funktionierende Code.
import lotus.domino.*;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.DirContext;
import javax.naming.directory.Attributes;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
System.out.println("Hashtabelle fuer Properties");
Hashtable env = new Hashtable(11);
System.out.println("INITIAL_CONTEXT_FACTORY : com.sun.jndi.ldap.LdapCtxFactory");
env.put( Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
System.out.println("PROVIDER_URL : ldap://ldap.xxx.at");
env.put( Context.PROVIDER_URL,"ldap://ldap.xxx.at/o=xxx,c=at");
System.out.println("Context");
try {
// initialisieren des Contextes
System.out.println("Initialisieren des Contextes");
DirContext ctx = new InitialDirContext(env);
// Suchparameter
SearchControls constraints = new SearchControls();
// Auch Unterebenen durchsuchen
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
// Suche starten
NamingEnumeration results =
ctx.search("ou=personen", "o=wds", constraints);
// Durch alle gefundenen Datensätze durchgehen
while (results != null && results.hasMore()) {
// Das nächste Ergebnis aussuchen
SearchResult si = (SearchResult) results.next();
// Attribute
Attributes attrs = si.getAttributes();
if (attrs == null)
System.out.println("No attributes");
else // Nur die UID ausgeben
try {
Database db = agentContext.getCurrentDatabase();
Document doc = db.createDocument();
doc.appendItemValue("Form", "LDAP");
doc.appendItemValue("Subject", "Test Document");
doc.appendItemValue("UID",attrs.get("uid").get()); System.out.println("Result= " + attrs.get("uid"));
doc.save();
doc.recycle(); db.recycle(); }catch(Exception e) {e.printStackTrace();}
}
// und tschüss ...
ctx.close();
} catch (NamingException e) {
System.err.println("Problem : " + e);
}
session.recycle(); } catch(Exception e) {
e.printStackTrace();
}
}
}