Domino 9 und frühere Versionen > ND7: Entwicklung
Domino Webservices: Was ist das?
flaite:
Das WSDL hat offenbar doch keinen Bug
Es liegt an meinen Verständnislücken von SOAP.
Vermutlich liegt es daran, dass ich mit einer lokalen Copy des WSDL Files gearbeitet habe. Weiss allerdings auch nicht wie das anders gehen soll mit den Tools von Eclipse Web Tools Platform 0.7.
ABER: Ich habe jetzt in SoapUI die URL des WSDL Files getan und da läuft alles ok.
Was ist die URL des WSDL Files? In meinen Fall: http://localhost/webservices/FirstTest.nsf/FirstTest?WSDL
Man kann das in die Adresszeile eines Browsers eingeben.
Was ist SoapUI? In diesem Blog Eintrag von Julian Robinchaux ist davon die Rede:
http://www.nsftools.com/blog/blog-09-2005.htm#09-19-05
Einfach auf die Projektseite klicken (http://www.soapui.org/index.html) und auf den mit Webstart runterladen Button klicken (der große blaue).
Der Rest geht automatisch.
in die Gui von SoapUI klicken. Neues Projekt. Speicherort für die xml Konfig Datei eingeben. Rechte Maustaste auf das Projekt. Add Wsdl from Url.
Zum Starten dann den grünen Pfeil.
Unten sieht man das Ergebnis.
Der Spaß dauert dann nur noch 0.1 bis 0.2 Sekunden (ab dem zweiten Aufruf).
flaite:
Hab ins Notes 7 Forum gepostet. Vielleicht kann mir da jemand was sagen:
https://www-10.lotus.com/ldd/nd6forum.nsf/DateAllThreadedweb/b80f5d81791033e7852570a300247105?OpenDocument
flaite:
Hier noch die derzeitige Beispieldatenbank. Basiert stark auf der von Bill Buchan.
Der Mann ist kein Anfänger.
Selbst die Kommentare konnte ich wiederverwenden. 8)
Ich hab nur das Design auf mein Standard-Design geändert.
Die Datenbank muß auf einen Notes Server getan werden. Sie funktioniert z.Zt. nur mit dem Notes Client (also nicht Browser, auch wenn das Webservices heisst).
Neu ist hier ein Notes Webservice Client, der auf den Notes Webservice Server zugreift.
Das ist eigentlich ein bischen Schwachsinn, weil es innerhalb einer NotesDatenbank selber natürlich effizientere Wege des Datenaustauschs gibt. Webservices sind eben für den Austausch von Daten zwischen unterschiedlichen Systemen gedacht. Aber als Beispiel ist das ganz instruktiv, weil eben so gezeigt wird, wie beide Enden der Kommunikation in Notes programmiert werden können (Client und Server).
Ich werde - wenn Zeit und Lust da ist - dieses Beispiel ausbauen auf Zugriff auf z.B. Amazon Webservices und Beispiele mit Tomcat, Java Swing Clients und vielleicht Ruby Clients.
Dann vielleicht noch Beispiele für alternative Technologien zu SOAP wie z.B. REST.
Diese Datenbank habe ich auch für die Zugriffe von den Java Testtools oben verwendet.
Zu der Implementierung von Webservice Clients in Notes 7 sind noch ein paar Sachen zu sagen.
Achso. Das obskure WSDL File könnt ihr euch - wenn die Datenbank installiert ist - mit der folgenden URL in einen Browser laden:
http://<server>/<pfad>/FirstTest.nsf/FirstTest?WSDL
Gruß Axel
flaite:
Inzwischen hat ein Herr Steve Nikopulous eine Antwort für meine service-adress location Probleme geliefert.
Er sagt sinngemäss, dass muss so sein, weil sich ja Pfad oder Server der Datenbank ändern kann.
Es ist deshalb immer besser, sich das WSDL File vom Server zu holen.
https://www-10.lotus.com/ldd/nd6forum.nsf/DateAllThreadedweb/a2d16a6bf0422218852570a3004e0116?OpenDocument
Ich weiss nicht ganz, ob ich dem voll und ganz zustimmen kann.
Zumindest sollte es imho beim WSDL exportieren eine Option geben, dass man die aktuelle Adresse im WSDL haben will bzw. zumindest eine Warnung erscheinen. Mit diesen ziemlich fetten Export WSDL Buttons ein nicht vollständiges Konfigurationsdokument für einen wirklich komplexen Standard (SOAP) zu liefern, halte ich für problematisch.
Axel
flaite:
Der Zugriff geht über Web Tools Platform auf Eclipse auch mit
1. Projekt - Web - Dynamic Web Project
2. Server auswählen (Tomcat sollte auf Rechner installiert sein. Es gibt noch "Generic Versions" von verschiedenen Servern u.a. Websphere und Bea Weblogic, hab aber auf eigenes Vertraut).
3. Web Services - Web Services Client
4. Eclipse fragt dann nach der WSDL. Man muß dafür die Domino URL angeben. In meinen Fall ist das: http://localhost/webservices/FirstTest.nsf/FirstTest?WSDL
5. Eclipse erzeugt dann 5 Klassen und deployed sie in einem Tomcat Projekt. Auf der Web Tools Platform Oberläche liegen sie im Source-Ordner Java Source.
6. Tomcat kann gestoppt werden (falls er läuft).
6. In die Klasse *Proxy Klasse (in meinem Fall LandProxy) muß unten die folgend static main hinzugefügt werden.
--- Code: --- public static void main (String [] args) {
try {
System.out.println(new LandProxy().GETHAUPTSTADT("Chile"));
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
--- Ende Code ---
7. Klasse einfach starten.
8. Axis meldet erst - Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
Das ist eigentlich kein Fehler sondern eine Warnung, die hier auch fehlplaziert ist.
9. ... und dann das Ergebnis.
Werd das mal ein bischen ausarbeiten und noob-freundlich machen.
Jedenfalls ist das möglicherweise eine ganz attraktive Möglichkeit, um Daten zwischen Domino und Java Umgebungen (als Beispiel) auszutauschen.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln