Autor Thema: Webservice mit Notes/Domino konsumieren (Eclipse WSDL2Java)  (Gelesen 4068 mal)

Offline Raymond

  • Aktives Mitglied
  • ***
  • Beiträge: 111
  • Geschlecht: Männlich
  • who notes?
    • Who Notes
Hallo zusammen

Ich habe hier eine Lotus Domino Applikation, welche einen Webservice konsumieren soll. Es wird SSL verwendet, der Webservice Client haben wir in Java mit Eclipse entwickelt und dann den Code in einen Notes Java-Agenten importiert, welcher beim WebQuerySave einer Form abläuft. Das Ganze läuft soweit auch ganz gut.

Für die Konsumation des Webservice haben wir das Axis Packet verwendet und in Eclipse werden mit WSDL2Java aus dem WSDL die entsprechenden Klassen generiert, mit welchen man dann den Webservice ansprechen kann.

Die Probleme/Fragestellungen die nun auftauchen sind folgende. Der Agent sollte nun den identischen WebService von zwei unterschiedlichen Servern konsumieren. Das WSDL ist ja Server-/URLabhängig. Das heisst wenn wir WSDL2Java anwenden, erhalten wir für den identischen Webservice auf zwei Unterschiedlichen Server auch unterschiedliche Klassen um den Webservice zu konsumieren. Aber im  Prinzip sind ja nur die Parameter URL, Login, Password pro Server unterschiedlich, der Rest ist aber identisch, da es sich ja eben um den gleichen Web Service handelt.

Mit dem jetzigen Ansatz ist jeweils für das Laufen lassen in den verschiedenen Umgebungen DEV, TEST, PROD ein Anpassen des Java Source Codes notwendig, d.h. es muss das "import" beim Code angepasst werden, der die jeweils Serverabhängigen WSDL2Java generierten Klassen verwendet.. Dies ist natürlich nicht sehr praktikabel  :(

Gruss und besten Dank für jegliches Feedback!
Ray
« Letzte Änderung: 12.02.08 - 11:01:50 von Raymond »
aktuelle Versionen:
Lotus Notes/Domino 7
Lotus Notes/Domino 8.5

dabei seit Lotus Notes 4.x

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Webservice mit Notes/Domino konsumieren (Eclipse WSDL2Java)
« Antwort #1 am: 11.02.08 - 11:28:36 »
Sofern du nicht in den Generationsprozess von axis-wsdl2Java eingreifen kannst (was sicher nicht einfach ist), sehe ich da auch keine andere Lösung als das manuelle Nachbearbeiten. Würd da aber nicht groß Energie reinstecken.
Axis kann für bestimmte Aufgabenstellungen keine schlechte Lösung sein.
Irgendwie ist es aber auch eine technologische Sackgasse. Mittlerweile gibts nämlich wesentlich performanteres und flexibleres Axis2, das aber Java5 benötigt. Viele Webservices sind auch gar nicht SOAP, sondern REST. Und das wird von axis1 gar nicht unterstützt.
Aus diesen Gründen bin ich persönlich in Projekten für Domino Webservices erstmal low level gegangen (ausgtauschten Nachrichten selbst parsen und Nachrichten austauschen mit jakarta.httpClient.
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 ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Webservice mit Notes/Domino konsumieren (Eclipse WSDL2Java)
« Antwort #2 am: 11.02.08 - 12:31:19 »
... ich denke die Frage sollte nach Java verschoben werden...

Toni
Grüßle Toni :)

Offline Raymond

  • Aktives Mitglied
  • ***
  • Beiträge: 111
  • Geschlecht: Männlich
  • who notes?
    • Who Notes
Re: Webservice mit Notes/Domino konsumieren (Eclipse WSDL2Java)
« Antwort #3 am: 11.02.08 - 16:28:37 »
Hallo zusammen

habe mich in der Zwischenzeit noch weiter mit den Unterschieden in den WSDL Files für die unterschiedlichen Server befasst. Offenbar ist  die konkrete Adresse (>soap: address location>) für die Ports unterschiedlich, die kann jedoch über einen Parameter beim Aufruf des Webservice mitgegeben werden

Code
locator = new XYServiceLocator();
locator.getXYServiceSoapAddress();
//url beinhaltet die zu verwendende url
service = locator.getXYServiceSoap(url);

Zudem ist die URL in den jeweiligen SoapActions  <soap:operation soapAction="https://xyz.com/XYService/GetXYByEMail" style="document" /> unterschiedlich, die Adresse kommt aber aus dem Targetnamespace des WSDL Dokument und kann gemäss http://bluebones.net/2003/07/server-did-not-recognize-http-header-soapaction/ unabhängig vom Server jeweils gleich sein.

Damit würden die unterschiede im Bezug auf die mit WSDL2Java generierten Klassen entfallen und man könnte mit den gleichen Klassen den identischen Webservice von unterschiedlichen Server konsumieren.

Gruss
Ray
aktuelle Versionen:
Lotus Notes/Domino 7
Lotus Notes/Domino 8.5

dabei seit Lotus Notes 4.x

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Webservice mit Notes/Domino konsumieren (Eclipse WSDL2Java)
« Antwort #4 am: 11.02.08 - 19:18:23 »
danke für die Infos  ;)
Mag Axis trotzdem nicht  :P
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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz