Das Notes Forum

Lotus Notes / Domino Sonstiges => Java und .NET mit Notes/Domino => Thema gestartet von: magic_halli am 23.12.08 - 12:03:40

Titel: Variant does not contain... Deklarationsproblem?
Beitrag von: magic_halli am 23.12.08 - 12:03:40
Hi,

in einem Agent verwende ich LS2J, um mit Java zusammen zu arbeiten.
Folgendes Problem:
Ich rufe mittels LotusScript und LS2J eine meiner Java-Klassen und daraus eine Methode auf. Diese Methode gibt mir entweder 'Null' oder ein konkretes 'Object einer anderen Klasse' zurück.
Diesen Rückgabewert will ich nun auswerten.

Hier erstmal mein relevanter Code:
Code
Set jClass_SucheGUIPosteingang = jSession.GetClass("SucheGUIPosteingang")
Set jObject_SucheGUIPosteingang = jClass_SucheGUIPosteingang.CreateObject("(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V",server,serverport,user,pass)	
Set jMethod_SucheGUIPosteingang = jClass_SucheGUIPosteingang.GetMethod("getConnector","()LAfpsHttpConnector;")
	
Dim connected As Variant
connected =  jMethod_SucheGUIPosteingang.Invoke(jObject_SucheGUIPosteingang)
Wenn 'Null' zurückkommt sehe ich im LotusScript Debugger, dass connected den Wert 'Null' hat. Wenn aber das Object zurückgeliefert wird, kommt der Fehler: "Variant does not contain an object."!

Was ist hier falsch???



Vermutung: Es liegt an der Deklaration der Variablen 'connected' (As Variant)?! Wie müsste denn sonst die Deklaration aussehen?

Danke und Gruß
Titel: Re: Variant does not contain... Deklarationsproblem?
Beitrag von: it898ur am 23.12.08 - 13:54:17
Hallo,

die Lotus Script to Java Bridge unterstützt nur einfache Datentypen (String, Integer) und keine Objekte !

Gruß

André
Titel: Re: Variant does not contain... Deklarationsproblem?
Beitrag von: magic_halli am 23.12.08 - 13:56:10
Hallo,

die Lotus Script to Java Bridge unterstützt nur einfache Datentypen (String, Integer) und keine Objekte !
...also keine Chance einen Rückgabewert, der ein Object ist, auszuwerten?! Mh, Mist.

Danke
Titel: Re: Variant does not contain... Deklarationsproblem?
Beitrag von: flaite am 23.12.08 - 14:05:13
Aber das Objekt dürfte doch datenmässig aus verschiedenen erlaubten Datentypen bestehen.
Da kannst du dann im Objekt getter-Methoden reinmachen.

Beispiel:
Code
class Person {

String name; 
int age; 

public String getName() {
return this.name; 
}

public int getAge() {
return this.age;
}
}
Diese getter-Methoden kannst du dann wiederum aus LS2J ansprechen.
Titel: Re: Variant does not contain... Deklarationsproblem?
Beitrag von: magic_halli am 23.12.08 - 15:44:12
Ich habs jetzt über nen "Umweg" gelöst... In Java eine neue Methode geschrieben, in welcher meine eigentliche Methode, die Null oder das Object liefert, ausgeführt wird und dann, je nachdem was als return kommt einfach nen boolschen-Wert gesetzt. Diesen boolschen Wert lasse ich mir nun durch meine quasi "Hilfsmethode" zurückliefern und rufe diese dann auch mittels LS2J in Notes auf.
Klappt!  ;D   

@Pitiyankee
Getter passen leider in der einen Klasse nicht ins Konzept. Von daher jetzt diese Lösung.


Danke und Gruß
Titel: Re: Variant does not contain... Deklarationsproblem?
Beitrag von: MadMetzger am 23.12.08 - 16:55:51
Hm... magic_halli, das verstehe ich nicht, warum getter-Methoden in der einen Klasse nicht ins Konzept passen? Erklär das doch mal bitte.