Domino 9 und frühere Versionen > ND8: Entwicklung

LS2J Error: Null Java Object

(1/2) > >>

masseur81:
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?

masseur81:
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.

flaite:
Du kannst schon etwas herausbekommen.
Hab das gerade in der Hilfe gefunden:

--- Code: ---Set Variant = javamethod.Invoke([JavaObject [,Argument1...[, Argument12]])

--- Ende Code ---
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.

masseur81:
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.

flaite:
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.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln