GWT mit eig. embedded Webserver?

T

tuxedo

Gast
Hi,

hab mal ne Frage (oder zwei) zu Google's GWT, die ich mittels google suche nicht beantworten konnte:

Angenommen ich hab eine stinknormale Serveranwendung in Form eines Konsolenprogramms und ich möchte nun ein kleines webinterface anbieten: Lässt sich hierfür GWT benutzen?

Wenn ich GWT richtig verstanden habe, dann wird primär Java-Code zu HTML/JavaScript umgeformt, so dass eigentlich für die Konsolenserveranwendung sowas wie ein kleiner embedded Webserver (z.B. NanoHTTPD / NanoHTTPD.java) ausreichen müsste um die vom GWT Compiler generierte Webseite ausliefern zu können.

Was mir noch nicht ganz klar ist: Wie würde in so einem Fall das GWT WebUi mit dem Server kommunizieren um beispielsweise Daten aus einer DB anzuzeigen? Der embedded Webserver müsste da ja irgend eine Schnittstelle anbieten.

Hab in dem Zusammenhang auch was von JSON gelesen. Aber JSON beschreibt ja nur das FORMAT und nicht das WIE...

Hat hier jemand genug Einblick um hier etwas Licht ins Dunkel zu bringen und folgende Fragen zu beantworten:

* Kann ich GWT mit einem embedded Webserver (z.B. wie der oben genannte, nur vielleicht mit ein paar Anpassungen/erweiterungen) laufen lassen?
* Was für (minimale) Anforderungen werden an den Server gestellt um das GWT WebUi mit dem Server kommunizieren zu lassen?

Gruß
Alex
 
T

Tomate_Salat

Gast
Du könntest mit dem Webserver eine URL anbieten und versuchen mit AJAX drüber zu kommunizieren. Oder, du schreibst servlets. Die kannst du in GWT benutzen und kommunizierst damit mit dem server. Dafür musst du halt die GWT-Seite auf einen Tomcat o.ä. laden, aber das sollte denke ich ja kein Problem sein (damit dürfte sich auch die DB frage erledigt haben)
 
T

tuxedo

Gast
Ich komm da noch ein wenig durcheinander...

Wenn ich mit GWT bastle, dann hab ich Java-Code vor mir. Der GWT Compiler macht dann daraus HTML/JavaScript/AJAX. Wie komm ich also mit meinem Java-Code an Daten vom Server? Kann ich da einfach GET Requests auf eine bestimmte URL oder sowas machen?!

Tomcat und Co. sind für dieses Projekt keine Option... Wenn, dann minimalistisch embedded we der NanoHTTPD.
 
T

Tomate_Salat

Gast
Naja, ganz verstehe ich dein Problem jz nicht. Soll der Webserver im Konsolenprogramm implementiert werden oder im GWT(was imho wenig sinn machen würde). Falls 2teres: nein, dafür brauchste sicherlich servlets.

Ansonsten, schauen welche Möglichkeiten GWT dir für AJAX bietet (hab selber eher wenig damit gemacht) und im Notfall: du kannst auch selbst ganz leicht JS in GWT schreiben.
 
M

maki

Gast
Bin nicht mehr auf dem laufenden was GWT betrifft, aber der sog. "hosted mode" läuft doch auf Jetty, der als embedded WebServer bzw. ServletContainer fungiert.
 
T

tuxedo

Gast
Naja, ganz verstehe ich dein Problem jz nicht. Soll der Webserver im Konsolenprogramm implementiert werden oder im GWT(was imho wenig sinn machen würde).

Ich hab ne Serveranwendung die in der Konsole läuft. Diese würde ich gerne mit einem Webinterface ausstatten.

Und da man mit Hilfe von GWT sein Webinterface komplett in Java-Code formulieren kann, würde ich gerne GWT benutzen um das Webinterface zu erstellen.
Damit das Webinterface über's Netzwerk mit dem Browser erreichbar ist, brauch ich ja einen Webserver. Hierfür kommt nur sowas kleines wie der NanoHTTPD in Frage.

Und die Frage war nun: Kann ich ein GWT UI auch in einem eigenen embedded Webserver (kein Tomcat, kein Servletcontainer, ...) laufen lassen, und das ganze so hinbiegen, dass dieses GWT UI noch auf irgend eine Art und Weise mit dem Server kommunizieren kann, um Daten, die der Server bereit stellt auf der Seite anzuzeigen, und Daten, die ein User im Webinterface eingibt im Server zu speichern.
 
T

Tomate_Salat

Gast
Achso, ja dass du deine Seite über einen eigenen Webserver hostest, sollte kein Problem sein. Dann musst du den Server ja nur anpassen, dass er sich mit dem Konsolenserver verbinden kann und die Anfragen von der WebUI (welche ja nicht zwangsläufig GWT sein muss) weiterleitet.

Du kannst mit dem Webserver ja die GET und POST übertragungen abfangen und auswerten und daraus die Serveranfrage basteln.

MFG

Tomate_Salat
 

Geeeee

Bekanntes Mitglied
Damit ich/wir das gerade richtig verstehen, fasse ich das mal in einem Satz zusammen:
Du willst dir das Schreiben von (hauptsächlich) JS ersparen indem du GWT nutzt?
Ich halte diese Lösungsvariante ohne einen ServletContainer auf der Serverseite für viel Overhead. Also das Erstellen / Hosten der ClientSeite ist natürlich möglich.
Evtl. gibts eine Möglichkeit, wie man das total einfach auf "einfache Requests" umbiegen kann, aber diese ist mir jedoch nicht bekannt. Also man müsste doch das gesamte Serviceprinzip von GWT ersetzen, oder?
Zusammengefasst denke ich, dass du glücklicher wirst, wenn du plain JS (evtl. mit ner kleinen Lib wie prototype.js) schreibst.
 
Zuletzt bearbeitet:
T

Tomate_Salat

Gast
Zusammengefasst denke ich, dass du glücklicher wirst, wenn du plain JS (evtl. mit ner kleinen Lib wie prototype.js) schreibst.

Und wo siehst du da den Vorteil?! Letztendlich hast du mit GWT auch eine HTML/JS Seite. Und ich schreibe mir sowas dann doch lieber in Java, lasse es compilieren, als das sich ein eigenes JS schreibe, was (in meinem falle) sicher viel optimierungsbedarf hätte...
 
Zuletzt bearbeitet von einem Moderator:

Geeeee

Bekanntes Mitglied
Gegen das Erstellen der Seite wollte ich nix sagen. Mein Einwand soll eher in Richtung "Kommunikation" gehen. Ich habe "nur" GWT-Erfahrungen mit dem ServicePrinzip und noch nie einen Request an die Serverseite gesendet, der nicht in einem ServletContainer lief und eine Serviceimplementierung für den GWTClient bereit hielt.
Es kann ja recht einfach gehen, nur von meinem Standpunkt und Erfahrungen mit GWT (größtenteils < Version 2x) sehe ich das gerade als kompliziert an.
 
Zuletzt bearbeitet:
T

Tomate_Salat

Gast
Ja ok, ich kann auch nicht ganz nachvollziehen, warum kein Tomcat drauf darf. Deinen Erfahrungen schließe ich mich an. Aber ich glaube, dass es doch einfacher gehen kann, als es vllt scheint. Man kann ja "native" JavaScript-Methoden in GWT schreiben und darin könnte man sein eigenes AJAX aufbauen. Und zurück gibst du einen String mit der Antwort.

Finde ich in der Theorie immernoch einfacher, als selber das komplett in JS(+libs) zu schreiben.
 
T

tuxedo

Gast
Achso, ja dass du deine Seite über einen eigenen Webserver hostest, sollte kein Problem sein. Dann musst du den Server ja nur anpassen, dass er sich mit dem Konsolenserver verbinden kann und die Anfragen von der WebUI (welche ja nicht zwangsläufig GWT sein muss) weiterleitet.

Okay, das heisst für mich nun im Klartext: GWT Ui basteln, den GWT Compiler drüber laufen lassen, und das was dabei rausfällt über den eigenen, embedded Webserver hosten.

Du kannst mit dem Webserver ja die GET und POST übertragungen abfangen und auswerten und daraus die Serveranfrage basteln.

Okay, für diese Lösung müsste der Webserver eine Art Queryinterface, ansteuerbar mit GET/POST anbieten, und das GWT UI muss einen entsprechenden Request an dieses Interface stellen.

Ja ok, ich kann auch nicht ganz nachvollziehen, warum kein Tomcat drauf darf

Das hat andere, leider recht komplizierte Gründe. Im moment schau ich ja nur ob sich mein Vorhaben mit GWT umsetzen lässt ...

Wie schauts mit RPC aus? Hab da oberflächlich was von "GWT RPC" gelesen (Communicating with a Server - Google Web Toolkit - Google Code)...

Zum einen steht da:

GWT provides an RPC mechanism based on Java Servlets to provide access to server side resources

Ein klein wenig weiter unten dann wieder:

GWT does not limit you to this one RPC mechanism or server side development environment. You are free to integrate with other RPC mechanisms, such as JSON using the GWT supplied RequestBuilder class, JSNI methods or a third party library.

Noch weiter unten ist dann ein Beispiel für HTTP Requests aufgeführt:

If your GWT application needs to communicate with a server, but you can't use Java servlets on the backend — or if you simply prefer not to use RPC — you can still perform HTTP requests manually.

Hmm, das beisst sich doch der Hund in den eigenen Schwanz: Oben steht: RPC geht auch mit anderen Mechanismen, und unten steht quasi das Gegenteil.

Ist hier jemand Fit genug in der Materie um mir ein Beispiel oder Link zu nennen, in dem GWT mit RPC aber ohne Servlets genutzt wird?!

Oder steh ich hier auf'm Schlauch?!

- Alex
 
T

Tomate_Salat

Gast
Okay, das heisst für mich nun im Klartext: GWT Ui basteln, den GWT Compiler drüber laufen lassen, und das was dabei rausfällt über den eigenen, embedded Webserver hosten.
ja

Okay, für diese Lösung müsste der Webserver eine Art Queryinterface, ansteuerbar mit GET/POST anbieten, und das GWT UI muss einen entsprechenden Request an dieses Interface stellen.
afaik sendet der Browser automatisch die Header beim laden der Seite, die liest du in einem InputStream aus. Da steht alles Mögliche drinn. Vom Browser den du nutzt bis zu der aktuellen URL, POST-Requests, etc. Kannst ja mal testweise einfach einen kleinen server basteln, der nix macht außer die anfrage auszulesen und dann mit dem browser: localhost:port ansteuern. Dann siehst du was du an informationen bekommst.

MFG

Tomate_Salat
 
Zuletzt bearbeitet von einem Moderator:
T

tuxedo

Gast
Danke für die Tipps und Hinweise so weit. Ich schau mal ob ich damit weiter komme.

Gruß
Alex
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Maven Problem mit Datenbanktreiber (H2 Embedded) Allgemeine Java-Themen 12
G Embedded Tomcat (war vs. jar) Allgemeine Java-Themen 6
L Suche Geräte für Java SE Embedded Allgemeine Java-Themen 0
S Embedded OpenOffice Crashs Allgemeine Java-Themen 1
N Schlüsselworte XML / Embedded Database Allgemeine Java-Themen 11
DEvent embedded Object Database in Text Format Allgemeine Java-Themen 5
C Derby Embedded Driver Allgemeine Java-Themen 2
C Embedded Jetty und MyFaces Allgemeine Java-Themen 7
Zed Embedded ORM DB Allgemeine Java-Themen 6
T JAR mit embedded Source/JavaDoc? Allgemeine Java-Themen 8
M Embedded Files aus PDF extrahieren Allgemeine Java-Themen 3
P JavaDB (Embedded) Allgemeine Java-Themen 2
G embedded Firebird + Java ? Allgemeine Java-Themen 3
F Wie bekommt man alle Filenamen eines Webserver Verzeichnisses Allgemeine Java-Themen 6
D Java auf Webserver Website möglich Allgemeine Java-Themen 7
I Verbindung eines Java-Plugins mit Webserver Allgemeine Java-Themen 3
P Schnittstelle java Programm zu Webserver / Browser Allgemeine Java-Themen 2
M Verbindung zu Webserver schlägt fehl Allgemeine Java-Themen 0
D Input/Output Datei wird lokal aber nicht vom Webserver ausgelesen... Allgemeine Java-Themen 2
D Mini Webserver für GUI Anwendung Allgemeine Java-Themen 5
D Swing Datei vom Webserver auslesen Allgemeine Java-Themen 3
G Webserver Funktion Allgemeine Java-Themen 3
W Programm prüft auf webserver ob neue version vorhanden? Allgemeine Java-Themen 3
T Simpler Webserver Allgemeine Java-Themen 11
N Hardware-Webserver mit Java (JSP/Servlet)-Unterstützung? Allgemeine Java-Themen 8
U Webserver auf Roboter Allgemeine Java-Themen 4
G Datei auf Webserver löschen, wie? Allgemeine Java-Themen 12
S Bea Webserver Allgemeine Java-Themen 2
M Java Webserver - Tomcat alleine oder zusammen mit Apache? Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben