Autor Thema: LS2J Error: Null Java Object  (Gelesen 4772 mal)

Offline masseur81

  • Junior Mitglied
  • **
  • Beiträge: 90
LS2J Error: Null Java Object
« am: 14.03.08 - 17:15:36 »
Ich verwende in einer Script Library LS2J und binde damit eine weitere Java Library ein, bestehend aus einer Klasse.
Beim Aufruf einer Methode meiner Java-Klasse erhalte ich jedoch den Fehler: "LS2j Error: Null Java Object."

Testweise habe ich in der Java-Klasse auf die Konsole geschrieben, und er führt die Methode auch bis zum Schluss aus. Trotzdem läuft dann noch was schief. Es kann also an der Zuweisung des Rückgabewerts liegen.

Die Signatur der Methode ist (byte[], int, int, String) : byte[], oder in JNI "([BIILjava/lang/String;)[B".

Wo liegt da nun der Fehler?

Offline masseur81

  • Junior Mitglied
  • **
  • Beiträge: 90
Re: LS2J Error: Null Java Object
« Antwort #1 am: 14.03.08 - 17:20:06 »
Hab mal den Rückgabewert auf void gesetzt, da funktioniert es. Welche Typen sind denn überhaupt erlaubt? Ist ne ganz schöne Einschränkung, weil ich damit ein Bild-Attachment in der Größe verändern möchte.

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: LS2J Error: Null Java Object
« Antwort #2 am: 14.03.08 - 18:17:58 »
Du kannst schon etwas herausbekommen.
Hab das gerade in der Hilfe gefunden:
Code
Set Variant = javamethod.Invoke([JavaObject [,Argument1...[, Argument12]])
Das Data Type Mapping wird in einem gleichnamigen Dokument der Notes Designer Hilfe beschrieben. Versuch einfach die Hilfe.
Aber brauchst du wirklich da komplexe Objekte herausholen, um die per LotusScript weiterzuverarbeiten.
Für Bild Attachment Größe doch wohl höchstens eher 2 Zahlenwerte? Die du zur Not auch in der Java Methode als String enkodieren könntest. Die eine Zahl vorne, die andere hinten und dazwischen ein Trennzeichen wie ~.
Ich würd aber das öffentliche Interface der LS2J Klasse - also alles auf was von LotusScript zugegriffen werden kann - immer möglichst EINFACH halten.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline masseur81

  • Junior Mitglied
  • **
  • Beiträge: 90
Re: LS2J Error: Null Java Object
« Antwort #3 am: 16.03.08 - 08:19:49 »
Ich benötige Breite und Höhe, aber natrlich auch das Bild selbst. Und das liegt entweder als Byte-Array oder als NotesStream vor. Aber beides scheint nicht so recht zu funktionieren.

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: LS2J Error: Null Java Object
« Antwort #4 am: 17.03.08 - 09:03:45 »
Eine Möglichkeit wäre, das Bild im Java Code einfach temporär an einem Ort auf der Platte speichern und den Ort zurückgeben.
Dann könntest du einfach einen String zurückgeben: <int_höhe>~<int_breite>~<datei_name>
Ich glaub mit hoher Sicherheit nicht, dass in LS2J eine automatische Konvertierung zwischen Streams in Java und in LotusScript angeboten wird.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline masseur81

  • Junior Mitglied
  • **
  • Beiträge: 90
Re: LS2J Error: Null Java Object
« Antwort #5 am: 17.03.08 - 09:12:58 »
Diese Varianten hab ich alle schon durch. Dann entsteht ein Rechteproblem, der Benutzer erhält einen hässlichen Dialog, bei dem er bestätigen muss, ob er den Festplattenzugriff überhaupt möchte.
Ich habe auch schon den Rückgabewert von byte[] in String geändert, aber dabei bekomm ich entweder kein korrektes Bildformat in mein Dokument, oder Notes stürzt beim Aufruf per LS2J einfach ab.

Eine Hürde könnte ich sicher noch nehmen, aber irgendwie führt jeder Umweg in eine Sackgasse. Momentan probier ich es über einen Java-Agenten, der aufgerufen wird. Ist sicher nicht der schönste Weg, Aufrufparameter im Dokument abzulegen, aber mittlerweile möcht ich nicht mehr so sehr, dass es schön ist, sondern dass es (unauffällig und ohne Probleme) funktioniert.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz