LS2J in 8.5.1 nutzbar ?

  • Hallo zusammen,


    funktioniert LS2J noch in in Lotus Notes Version 8.5.1 ? (DDE: Domino Designer on Eclipse)


    Denn ich versuche seit einem Tag in einem Form eine im DDE eingebene Java-Klasse aufzurufen und scheitere immer wieder bei:


    Set JavaSession=New JavaSession
    Set AtestClass=JavaSession.GetClass("Atest") '<--- Bang !


    In der Hilfe steht das Notes die Java Klasse selber findet , wenn sie in der DB ist. Im DDE gibt man nun einen 'Library" Namen an und nimmt das (DefaultPackage) oder definiert selber einen Packagenamen.


    Also kam ich auf die Idee verschiedene 'Pfade' zu versuchen:


    libraryname.package.class oder package.class etc.


    Aber immer schmeisst es mir in der .GetClass Zeile ein Exception weil es die Klasse nicht finden mag.


    Also entweder funktionioert LS2J nimmer oder ich übersehe etwas !?



    Gruss, Joe

  • Die Use Statements für LS2J und die entsprechende Java Library hast du auch drin ?


    Selber finden tut er gar nichts, es muss in den Agenten/Library eingebunden werden


    [color=FF0000]Bitte aufs Themenpräfix achten[/color]

  • Es sieht wie folgt aus :


    Java:


    package Testing;


    public class Atest {
    int x;


    Atest() {
    x=1;
    }
    }



    Notes form:


    (Globals) Options:


    Uselsx"*javacon"


    (Globals) Declaration:


    Dim AtestClass As JavaClass
    Dim JavaSession As JavaSession
    Dim MyObject as JavaObject


    Postopen Event:


    Set JavaSession=New JavaSession
    Set AtestClass=JavaSession.GetClass("Atest") '<--- Bang !
    ...


    Die Klasse ist nicht auserhalb der Notes DB, sondern als Desing Element in der Notes DB im DDE von mir eingegebe worden.
    Gruss, Joe

  • Hallo Taurec,


    in der Tat das war das Problem.


    Leider kann ich in der Doku nicht finden was du gefunden hast. Das LS2J extended example ist ohne USE , sondern nur mit 'Uselsx"*javacon" Also hinkt wohl die Doku etwas hinterher.


    Also vielen Dank nochmal !


    Noch ein Hinweis: Die Java Klassen werden auf heftigste gecacht. Im Notes Form waren Methodennamen oder Feldnamen, die geändert werden, nicht sofort mit ihrem neuem Namen oder neuer Parameterliste ansprechbar ! Musste Notes schliessen und neu öffnen bevor sie verfügbar waren.

  • Also in der 7er Designer Hilfe steht folgendes drin:



    Und das sagt ja eindeutig aus was ich vorher geschrieben habe

  • Hallo Taurec,


    das mag ja in der Notes 7 Designer Help gestanden haben, aber in der Lotus Domino Designer 8.5 Help die mit 8.5.1 installiert wurde , steht es leider nicht drin, es wird wohl vorausgesetzt das man es schon weiss?!


    Wie auch immer, es funktioniert nun und ich bin wieder etwas schlauer geworden und kann nun die Möglichkeiten von Domino und Java ausreizen helfen ... mal sehn ob man in Notes auch 'Swing'en kann 8-)


    Gruss, Joe


    Auszug Designer Help 8.5.1:


    Use Statment

    Loads a module containing Public definitions needed by the module being compiled.


    Syntax
    Use useScript


    Elements
    useScript
    A String literal, or a constant containing a String value, specifying the module to load.
    The Lotus software application that you’re using determines whether useScript must be compiled before use. Consult the product documentation for more information.


    Usage
    The Use statement can appear only at module level, before all implicit declarations within the module. Note that the Use statement is supported in Lotus Notes.
    Loading a used module
    Whenever LotusScript loads a module that contains a Use statement, LotusScript executes the Use statement before initializing the module and executing the module's Initialize sub, if the module contains one.
    Referring to Public names in a used module
    A used module remains loaded until it is explicitly unloaded. When a module is unloaded, references to Public names defined in that module become invalid and result in run-time errors.
    Declaring Public names
    A module’s Public names are not visible to other modules until the first module is used. Multiple Public definitions for the same name cannot be loaded at the same time.
    Using modules is transitive: if module A uses module B, and B uses C, then the Public names in C are visible in A.
    Use statements must not contain circular references at compile time. If A uses B, then B, or any module that B uses by transitivity, cannot use A.

  • Dann schaust du an der falschen Stelle.
    Denn in der 8.5.1er Designer Hilfe unter LS2J\Use statement finde ich genau den gleichen Text:


  • Hallo Taurec,


    das ist wirklich interessant. Ich fürchte das es dann wohl 2 Versionen der Hilfe-Dateien geben muss. (help85_designer.nsf)


    Gruss und schönes Wochende, Joe