Beiträge von grobber

    Hallo,


    danke für die schnelle Antwort.


    Ich lasse den Agent auf dem Server laufen. Wenn ich den Agent lokal laufen lassen würde, dann würde ich die Fehlermeldung nicht erhalten. Jedoch kann ich das nicht testen, weil ich den Agent nicht abstempeln kann.
    Die Anwendung läuft aber lokal.


    Was will mir die Fehlermeldung sagen? Auch wenn diese auf dem Client erscheinen würde? Hat jemand eine Idee?


    Gruß grobber

    Hallo,


    hat von Euch einer eine Idee, was es mit der folgenden Fehlermeldung auf sich hat:


    Notes-Fehler: JVM: Versuch, den Java Agentenanhang aufzurufen, ist fehlgeschlagen


    Die Fehlermeldung erscheint, wenn auf dem Server ein Agent (Java) gestartet wird. Ich vermute, daß die JVM auf dem Server diese Fehlermeldung erzeugt.


    Durch neu durchstarten des Servers ist der Fehler behoben. Hat jemand eine Idee was das bedeutet? Kann man z. B. nur die JVM neu durchstarten, so daß der Server nicht durchgestartet werden muß?


    Hoffe es gibt eine Lösung. Ansonsten habe ich ein ziemlich großes Problem.


    Gruß aus Düsseldorf

    Hallo,


    das Thema mit den Bibliotheken ist schon wieder aktuell. Das Programm muß jetzt doch auf Version 6 bzw. 7 von Lotus Notes lauffähig sein.


    Ich habe verstanden, daß die Klasse java/util/LinkedHashMap eingebunden werden muß. Aber wie macht man das? Ich habe zum Beispiel die Bibliothek core.jar (wird mit der Version 8 mitgeliefert) in das Verzeichnis für den Client der Version 6 kopiert). In core.jar ist die Klasse java/util/LinkedHashMap.class enthalten. Das hilft nicht. Hier ist sehr wahrscheinlich das Jarfile rt.jar das Pendant zum core.jar.
    Mit einigem Hin- und Herkopieren bin ich nicht weitergekommen. Ich weiß wirklich nicht mehr weiter.


    Beispielsweise, wenn ich core.jar in das Lib-Verzeichnis vom 6er-Client kopiere und dann starte, dann stürzt Lotus Notes ab oder ich kriege die Meldung, daß die Virtuelle Maschine nicht gestartet wurde. Das passiert natürlich auch, wenn ich zuvor rt.jar zuvor gelöscht habe.


    Ich finde leider auch nirgends eine Dokumentation zu dem Thema. Beispielsweise würde ich auch gerne einfach nur die Virtuelle Engine komplett austauschen. Gibt es eine Möglichkeit?


    Gruß, Grobber

    Hallo,


    danke für den Hinweis.


    Ich mußte -cp angeben, weil das das Programm java selbst nicht die eigene aufgerufene Klasse gefunden hat (!!!).


    Ich habe jetzt den Fehler gefunden: Ich habe einfach die aktuellste Java-Version deinstalliert. Ich hatte installiert 1.6.0_10 (Beta). Jetzt läuft 1.6.0_06. Und siehe da, -cp wird nicht mehr benötigt und das Programm läuft wie gewünscht.


    Nochmals vielen Dank für die Hilfe


    Gruß, Grobber

    Hallo,


    Die Einträge in Classpath sind genauso, wie oben beschrieben. Da ist nichts überschrieben worden.


    Danke schon mal für die Hilfe. Ich habe zwar noch keine entgültige Lösung, aber ich weiß schon mal woran es liegt.


    Gruß, Grober

    Danke,


    ich habe den Classpath mit "Systemsteuerung\System" eingestellt, also nicht mit Eclipse.


    Da ich mit der IDE Eclipse arbeite, kann es nicht sein, daß meine Programmierung nochmals mit javac kompiliere. Es werden noch viel mehr Bibliotheken eingebunden (JDBC, API etc.).


    Ich habe den Rechner auch nochmals neu durchgestartet, aber das Programm findet einfach nicht die gewünschten Klassen zum importieren.


    Gruß, Grobber

    Danke für den Hinweis, habe ich soeben nochmals überprüft.


    Bei mir sieht der ClassPath wie folgt aus:


    C:\Programme\Java\jdk1.6.0_06;C:\Programme\Lotus\Notes6;C:\Programme\Lotus\Notes; C:\work\eclipse33\sugarsoap;C:\work\eclipse33\EmailArchiver\bin


    Das Verzeichnis C:\work\eclipse33\EmailArchiver\bin verweist sogar auf das Verzeichnis in dem die Klasse NotesTest.class sich befindet. Habe ich soeben eingetragen.


    In dem Verzeichnis C:\work\eclipse33\sugarsoap befindet sich die Datei Notes.jar


    Außerdem: Das Ziel ist es, später eine Jar-Datei aufzurufen. Da erhalte ich denselben Fehler. Mich interessiert dabei auch, was Eclipse da richtig macht und was beim Aufruf mit Kommandozeilen der Unterschied ist.



    Gruß, Grobber aus Düsseldorf

    Hallo,


    ich muß ein eigenständiges Java-Programm schreiben. Derzeit entwickle ich in Eclipse. In Eclipse funktioniert das Programm auch ganz ordentlich. Zur Veranschlaulichung habe ich ein einfaches Programm geschrieben, siehe unten.


    Wenn ich folgenden Befehl unter MSDOS eingebe, erhalte ich folgende Fehlermeldung:


    java -cp . NotesTest


    Exeption in thread "main" java.lang.NoClassDefFoundError: lotus/domino/NotesThread


    at NotesTest.main<NotesTest.java:16>


    Hat von Euch jemand eine Idee, wie ich diesen Fehler vermeiden kann? Irgendwie weiß das Programm nicht wo die die notes.jar zu finden ist. Ich habe schon den classpath angepaßt. Das hat aber auch nichts genützt.


    Vielen Dank schon mal für hilfreiche Tipps.


    Gruß, Grobber





    import lotus.domino.*;


    public class NotesTest {


    public static void main(String[] args) {
    NotesTest test = new NotesTest();
    try {
    lotus.domino.NotesThread.sinitThread(); // start thread
    Session s = NotesFactory.createSessionWithFullAccess("oscar");
    test.listDominoEmailAddresses(s);
    }catch(Exception e){
    e.printStackTrace();
    }
    finally {
    NotesThread.stermThread(); // must terminate every thread
    }
    }


    public void listDominoEmailAddresses(Session session){
    try {
    Database db = session.getDatabase("", "mycrmspace\\sugarCRMDomino.nsf");
    View viewEmailAddresses = db.getView("EmailAddresses");
    lotus.domino.Document docEmailAddress = null;
    docEmailAddress = viewEmailAddresses.getFirstDocument();

    while (docEmailAddress != null ) {
    System.out.println("Address: " + docEmailAddress.getItemValueString("EmailAddress"));
    docEmailAddress.save(true,false,true);
    docEmailAddress = viewEmailAddresses.getNextDocument(docEmailAddress);
    } // end while

    } catch(Exception e) {
    e.printStackTrace();
    }
    }
    }

    Hallo,


    Ich habe eine Programmierung von LotusScript auf Java umgestellt, weil ich der Meinung war, daß die langsame LotusScript-Anwendung (ODBC) durch eine schnellere Java-Anwendung (JDBC) ersetzt werden sollte. Aber das Gegenteil ist der Fall. Die Java-Anwendung ist unwahrscheinlich langsam.


    Ist das so, daß Java noch langsamer ist als LotusScript?


    Vielen Dank im Voraus für die Beantwortung der Fragen.


    Gruß, Grobber

    Hallo,


    die Antworten sind eher philosophisch. Ich möchte keine Zeit verschwenden, mit etwas, was eigentlich Standard sein sollte.
    Auf jedenfall muß ich nicht das Rad jedesmal neu erfinden. Natürlich kann ich so etwas selbst entwickeln.


    Aber noch was: wenn ich die Daten aus einem sortierten View (bei einer Kategorisierung) erhalte wobei die zweite Spalte im View sortiert ist, so erhalte ich doch diese Daten nicht automatisch auch sortiert in der eingelesenen DocumentCollection (für jede Kategorie), oder doch?


    Gruß, Grobber

    Hallo,


    bin gerade dabei meine ersten Java-Anwendung zu entwickeln. Hier ist es notwendig eine DokumentCollection zu sortieren. Für LotusScript kenne ich eine Funktion, mit der man eine solche Liste sortieren kann. Eine ähnliche Klasse oder Methode suche ich nun für Java. Weiß jemand wo ich so etwas finden kann, ohne daß ich das nochmals neu programmieren muß?


    Gruß aus Düsseldorf

    Hi, <br />
    <br />
    so k&ouml;nnte es gehen:<br />
    <br />
    Das rtitem ist ein Richtextfeld in einem NotesDocument.<br />
    ...<br />
    Dim rtitem As NotesRichTextItem<br />
    Dim doc as NotesDocument<br />
    ...<br />
    Set rtitem = doc.GetFirstItem( &quot;RichtextField&quot; )&nbsp;&nbsp;&nbsp; <br />
    If ( rtitem.Type = RICHTEXT ) Then<br />
    &nbsp;&nbsp;&nbsp;&nbsp; If Isarray(rtitem.EmbeddedObjects) Then<br />
    &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Forall o In rtitem.EmbeddedObjects<br />
    &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; If ( o.Type = EMBED_ATTACHMENT ) Then<br />
    &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; msgbox o.Source<br />
    &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; End If<br />
    &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; End Forall<br />
    &nbsp;&nbsp;&nbsp;&nbsp; End If&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />
    End If<br />
    <br />
    So &auml;hnlich funktioniert das auch mit Objekten vom Typ NotesDocument.<br />
    <br />
    Gru&szlig; Grobber

    Vielen Dank für die Antwort,


    das hilft mir schon mal weiter. Mittlerweile bin ich darauf gekommen, daß ich die Memo-Maske doch nicht brauche. Ich befinde mich jetzt in einer selbst programmierten Memo-Maske in einer Datenbank (nicht Maildatenbank) und versende die Mail mit NotesUIDocument.send() und es funktioniert (darauf mußte ich erst mal kommen). Vorher hatte ich probiert mit NotesDocument.send() die Mail zu versenden, dann hat aber das System den Richtext nicht in MIME umgewandelt sondern in Plaintext. Und das ist genau das Problem was ich haben.


    Da sprichst Du ein interessantes Thema an: Wieso öffnest Du...? Ich öffne aus dem Grund die Mailmaske (selbsprogrammierte) damit der Befehl NotesUIDocument.import("HTML",...) angewendet werden kann, so daß HTML eingebunden werden kann. Ich habe das mit den MIME-Klassen auch probiert, dann kann ich aber keine Grafikdateien einbinden. Ich hätte aber noch viel lieber (für einen anderen Anwendungsbereich) gar nicht die UI-Klassen angesprochen, sondern gleich alles im Hintergrund eingebunden und versendet. Nach meinen Recherchen geht das aber nicht (es gibt kein Pendant zu NotesUIDocument.import(...).


    Gruß,Grobber aus Düsseldorf

    Hallo,


    ich habe derzeit ein Problem, daß MIME-Messages nicht richtig erstellt werden (wird immer in Text-Mails verwandelt). Aus diesem Grund versende ich die Daten mit der Memo-Maske. Dazu habe ich folgende Befehlsfolge programmiert:


    Dim uidoc as NotesUIDocument
    Dim workspace as NotesUIWorkspace
    Dim docMemo as NotesDocument
    ....
    Call docMemo.Save(True,False,True)
    docMemo.SaveOptions = "0"
    Call workspace.EditDocument(False,docMemo,True)
    Set uidoc = workspace.CurrentDocument
    Call uidoc.Send()
    Call uidoc.close(True)


    Bei dem folgenden Befehlsvfolge wird die Memo-Maske des Mailanwenders geöffnet (es ist aber schon alles eingetragen). Dann wird der Anwender, immer noch gefragt, ob gespeichert werden soll (uidoc.close()). Die Maske soll aber gespeichert oder ungespeichert geschlossen werden. Zwischenzeitlich hatte ich uidoc.Save() eingefügt. Das hatte das Verhalten aber auch nicht besser gemacht.


    Hat jemand eine Idee, wie man das gewünschte Ergebnis erreicht?


    Gruß, Grobber

    Ich hab mir soeben die Frage selbst beantwortet. Mit einem Lotus Notes Client Version 8.0.0 funktioniert es. Ich arbeite jetzt mit der Version 8 weiter.

    Hallo Zusammen,


    ich bin schon seit geraumer Zeit daran eine einfache Verbindung zu einer JDBC Datenquelle aufzubauen. Und erhalte gerade beim immer wieder eine Fehlermeldung, deren Ursache ich mir nicht erklären kann.


    Folgendes habe ich vorbereitet:


    Lotus Notes Client 6.5.1
    In dem Java Agent neues JAR-File hinzugefügt: mysql java connector 5.1.5


    In dem Java-Agent habe ich folgende Programmierung durchgeführt:



    //********************************************


    import lotus.domino.*;
    import java.sql.*;


    public class JavaAgent extends AgentBase {


    public void NotesMain() {


    try {

    String usr = "root";
    String pwd = "grobber";
    String sql = "SELECT * from ma";

    Class.forName("com.mysql.jdbc.Driver").newInstance();
    Session session = getSession();
    AgentContext agentContext = session.getAgentContext();
    Database db = agentContext.getCurrentDatabase();


    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/jat", usr, pwd);
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery(sql);


    while (rs.next() ) {
    System.out.println("Name:" + rs.getString("vname"));
    }

    } catch(Exception e) {
    e.printStackTrace();
    }
    }
    }



    //********************************************


    und erhalte dann folgende Fehlermeldung:


    java.lang.NoClassDefFoundError: java/util/LinkedHashMap
    at java.lang.ClassLoader.defineClass0(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:703)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:627)
    at lotus.domino.AgentLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:448)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:283)
    at java.sql.DriverManager.getConnection(DriverManager.java:543)
    at java.sql.DriverManager.getConnection(DriverManager.java:194)
    at JavaAgent.NotesMain(JavaAgent.java:21)
    at lotus.domino.AgentBase.runNotes(Unknown Source)
    at lotus.domino.NotesThread.run(NotesThread.java:215)


    ******************************************************


    Die Fehlermeldung kommt bei der Methode getConnection.


    Hat jemand eine Idee was ich dort falsch mache? Ich habe schon sehr lange hin und her probiert. Auch mit einem Treiber von MS SQL und ähnlicher Programmierung hat es nicht funktioniert. Ich muß irgendeinen grundsätzlichen Fehler machen und kann diesen einfach nicht erkennen.


    Vielen Dank im Voraus für mögliche Tipps.


    Gruß, Torsten

    Hallo Steffen,


    schon mal danke für die Infos. Ich werde mich nochmals einlesen. Ich habe kein einziges Verbindungsdokument eingerichtet. Wäre das notwendig?


    Gruß, Grobber