WebService aus einer HTML-Seite

  • Themenstarter Themenstarter WS-ANFAENGER
  • Beginndatum Beginndatum
W

WS-ANFAENGER

Gast
Hi
Kann mir jemand kurz erklären, ob es möglich ist, aus einer einfachen HTML-Seite (oder einem JSP / JSF) einen WebService aufzurufen und falls ja, wie (kurz gesagt) würde dies laufen? Ich bin ein WS-Anfänger und arbeite zur Zeit mic Metro RI und Apache CXF.
Danke.
 
Aus einer HTML seite geht das nicht, da du ja dort keinen Code platzieren kannst (außer JavaScript, welches am Client läuft, aber das ist sicher nicht das, was du willst). Die Frage ist was du genau machen willst. Wenn du das WebService aufrufen willst, wenn der User ein Formular zum Server schickt, bietet sich ein einfaches Servlet an, welches den Request entgegen nimmt, die Formulardaten ausliest, die XML-Binding Objekte (welche vorher durch das passende WebService-Framework generiert wurden) befüllt und anschließend den WebService Aufruf macht. Das Ergebnis sollte dann verarbeitet werden, in ein Bean gepackt werden und danach auf eine JSP-View weiterleitet. Die JSP sollte dann nur noch für die Darstellung des Ergebnisses dienen.
Hoffe ich konnte dir weiter helfen
 
Theoretisch könnte man auch alles in eine JSP packen. Es gibt ein paar Metro/NetBeans Tutorials, die das so machen. Aber guter Stil ist das natürlich nicht.
 
Ja, das ist genau das. Ich habe mich gefragt, ob dies ohne Servlets möglich ist.

Vielen Dank.
 
Weil es mit einem kleinerem Aufwand zu realisieren wäre: wenn ich den Inhalt eines Formulars an ein Servlet sende, kann ich unter "action" angeben, welches Servlet als Ziel gemeint ist. Wenn ich so auch den WebService angeben könnte, wäre es schön. Mit Servlet habe ich noch eine Zwischenstufe mehr.
 
das WebService kannst du sowieso nicht in der action angeben, weil das Service ja XML als Daten erwartet und irgendwer muss dem Service diese Daten ja aufbereitet zur Verfügung stellen. Du kommst also um eine Zwischenschicht nicht herum. Nur wie gesagt, ein Servlet ist für sowas meiner Meinung nach schöner als eine JSP.
 
Nun, jetzt habe ich es, oder besser gesagt, fast:

Eine JSP-Seite als UI, sendet die Anfrage an ein Servlet, das die Anfrage entgegennimmt und eine (dummy) Antwort an ein anderes JSP sendet. So weit so gut. Jetzt möchte ich aber eine echte Antwort: dazu muss ich in doGet meinen WebService aufrufen. Der ist an sich schon implementiert und getestet. Wenn ich aber jetzt versuche, den Service aufzurufen, passirt allerlei. Der Port kann plätzlich nicht mehr gefunden werden usw. Korrekterweise muss ich sagen, dass ich beim deployen meines Projekts (Tomcat 7) eine Menge Fehlermeldungen bekomme, und zwar vom Typ ClassNotFoundException. Trotz diesen Meldungen konnte ich JSP-Servlet-Anwendung (ohne WS-Aufruf) ausführen. Dass beim WS-Aufruf so viel schief geht, könnte evtl. daher kommen, dass Tomcat Probleme beim Starten hat.

Kurz gesagt: ich habe das Gefühl, dass meine Umgebung nicht korrekt ist bzw. die Bibliotheken vermisst werden. Kann mir jemand in wenigen Sätzen sagen, wie ich am einfachsten zu den Bibliotheken komme, die für so ein Projekt benötigt werden? Oder, welche JBoss-Version würde sich evtl. hier noch eignen? Und noch zur Info: ich arbeite mit "Eclipse Java EE IDE for Web Developers".

Danke für jeden Tipp.
 
Kurz gesagt: ich habe das Gefühl, dass meine Umgebung nicht korrekt ist bzw. die Bibliotheken vermisst werden. Kann mir jemand in wenigen Sätzen sagen, wie ich am einfachsten zu den Bibliotheken komme, die für so ein Projekt benötigt werden?

Wenn Metro, dann hier: Java.net
Die Installationsanleitung solltest du genau befolgen und am besten davor Tomcat komplett neu installieren, um den alten Murks loszuwerden.

Oder, welche JBoss-Version würde sich evtl. hier noch eignen?

GlassFish 3.1, da ist Metro schon drin. 😉

Und noch zur Info: ich arbeite mit "Eclipse Java EE IDE for Web Developers".

OK, in dem Fall ist Metro nicht die beste Wahl, weil nur in NetBeans die Unterstützung richtig gut funktioniert. Mit CXF kenne ich mich nicht aus.
 

Neue Themen


Zurück
Oben