# WebService aus einer HTML-Seite



## WS-ANFAENGER (11. Mai 2011)

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.


----------



## Niki (11. Mai 2011)

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


----------



## fax (11. Mai 2011)

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.


----------



## WS-ANFAENGER (11. Mai 2011)

Ja, das ist genau das. Ich habe mich gefragt, ob dies ohne Servlets möglich ist. 

Vielen Dank.


----------



## fax (11. Mai 2011)

Hier gibt's ein englisches Tutorial: Developing JAX-WS Web Service Clients - NetBeans IDE Tutorial


----------



## Niki (11. Mai 2011)

möglich schon, aber eben nicht so schön. warum sollte es denn ohne servlets sein?


----------



## WS-ANFAENGER (11. Mai 2011)

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.


----------



## Niki (12. Mai 2011)

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.


----------



## WS-ANFAENGER (12. Mai 2011)

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.


----------



## fax (12. Mai 2011)

WS-ANFAENGER hat gesagt.:


> 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.



WS-ANFAENGER hat gesagt.:


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



GlassFish 3.1, da ist Metro schon drin. 



WS-ANFAENGER hat gesagt.:


> 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.


----------

