Hallo zusammen,
ich möchte einen Webservice (adhoc) konsumieren den ein Kunde bereitstellt. Dieser ist mittels UsernameToken geschützt.
Diese Informationen werden im SOAP-Header des Requests mitgeschickt, und - korrigiert mich wenn ich falsch liege - man kann den Header nur über einen Java-Webservice-Consumer manipulieren (SetCredentials reicht zumindest nicht aus). Ich habe dazu das hier gefunden:
http://enerosweb.wordpress.com/2010/07/28/lotusdomino-8-5-webservice-consumer-manipulating-soap-header/Jetzt benötige ich die Rückgabe des Webservices aber in meiner bestehenden Anwendung - und die ist in LotusScript geschrieben.
Daher versuche ich die generierte Java-Bibliothek mittels LS2J anzusprechen, scheitere aber bereits beim Erstellen des WS-Objektes.
Ich gehe wie folgt vor:
Dim jSession As JavaSession
Dim jClass As JavaClass
Dim jWS As JavaObject
Set jSession = New JavaSession ()
Set jClass = jSession.GetClass("com.kundenname.anwendungsname.B_XXXXX_BindingStub")
Set jWS = jClass.CreateObject
Das resultiert aber in einem Java-Fehler:
java.lang.NoSuchMethodError: com/kundenname/anwendungsname.B_XXXXX_BindingStub.<init>()V.
Okay, die Klasse scheint ja auch Parameter zu benötigen:
public B_XXXXX_BindingStub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws lotus.domino.types.Fault {
super(endpointURL, service);
}
Mein Code müsste also so aussehen:
(...)
Set jWS = jClass.CreateObject("(Ljava/net/URL;Ljavax/xml/rpc/Service;)V", jURL, jService)
Also habe ich versucht mir (ebenfalls über LS2J) die Parameter zu erstellen. jURL habe ich geschafft, aber bei bei jService finde ich auf teufel-komm-raus nicht die benötigten Parameter zum Initialisieren. Die Service-Klasse hat aber, wenn ich das richtig sehe, auch einen leeren Konstruktor:
http://ws.apache.org/axis/java/apiDocs/org/apache/axis/client/Service.htmlAber damit laufe ich wieder in den gleichen Fehler wie oben.
Fragen:
1) Kennt jemand einen besseren Weg um mein eigentliches Vorhaben zu lösen (ansprechen eines via UsernameToken geschützten Webservice aus einem bestehenden, umfangreich mit LS geskripteten Systems)?
2) Weiß jemand wie ich die Binding-Klasse via LS2J initialisieren kann?
3) Sonstige Anmerkungen?
Beste Grüße,
Mitch