Webseite bereitstellen ohne JavaEE in einer jar-Anwendung


#1

Guten Abend,

ich möchte gerne eine JavaFX-Anwendung erstellen, die eine Webseite einbindet. Das ist notwendig, da ich ein JavaScript-Framework benötige.
Nun müssen noch ein paar Daten, die von diesem JavaScript-Framework benötigt werden je nach Nutzung nachgeladen werden. Dazu möchte ich lokal einen Webserver bereitstellen, ohne JavaEE zu nutzen.

Also, die Idee ist, dass die Anwendung startet, die JavaFX-GUI wird gestartet und im Hintergrund soll der Webserver gestartet werden. Nun könnte ich natürlich selbst die Requests per Sockets abfragen und verarbeiten, aber gibt es etwas, ähnlich dem @ServerEndpoint, was ich direkt in die Anwendung mit einbauen kann?

Besten Dank und freundliche Grüße
Ctwx


#2

Spontan würde mir einfallen, dass sich das mit einem eingebetteten Tomcat oder Jetty realisieren ließe.
Bei Tomcat brauchst du theoretisch nur folgende Dependency:
[xml]
org.apache.tomcat.embed
tomcat-embed-core
8.5.9
[/xml]
Einstiegspunkt wäre die Klasse org.apache.catalina.startup.Tomcat. Das ganze ist am Anfang etwas frickelig zu konfigurieren, der Aufwand lohnt sich aber.
Zum Jetty kann ich keine Aussage treffen, weil ich damit noch nicht gearbeitet habe.

Wenn der Servletcontainer dann eingebettet läuft, kannst du die Requests ganz gewöhnlich mittels Servlet-API beantworten. Dabei kannst du natürlich auch auf die etablierten WebMVC-Frameworks zurückgreifen.


#3

Guten Abend cmrudolph,

ah, stimmt Jetty, jetzt wo du es sagst! Tomcat Embedd kenne ich noch nicht, schaue ich mir aber mal an.

Die Frameworks brauche ich soweit nicht, da die Logik ausschließlich über JavaScript läuft. Ich habe einen Kartensoftware die ihre Karten aus einer Datenbank bekommt. Diese lässt sich jedoch nur per http ansprechen, da das JavaScript-Framework nur http und https unterstützt. Und bevor ich da in JS herumfrickle versuche ich es doch lieber mit den von dir genannten Optionen.

Vielen Dank, das hilft mir schon mal weiter! :slight_smile: