2017-10-14 1 views
0

Ich möchte eine SaaS-Anwendung mit Java EE mit JBoss (oder GlassFish) und JSF 2.0 entwickeln. Obwohl die endgültige Anwendung hauptsächlich in einer Standard-Client/Server-Anwendung eingesetzt wird, muss sie aus verschiedenen Gründen auch als eigenständige Anwendung auf einem lokalen Rechner (Linux oder Windows) bereitgestellt werden können.Wie stelle ich eine J2EE Client/Server-Anwendung als eigenständige Lösung bereit?

Ich möchte nicht 2 Versionen meiner Anwendung (Client/Server und Standalone) entwickeln. Außerdem möchte ich auch vermeiden, auf jedem Client-Rechner manuell einen kompletten lokalen Server einzurichten, um die Anwendung zu hosten.

Daher würde ich gerne wissen, ob es eine Lösung gibt, um eine Java-Client/Server-Anwendung auf einem lokalen Rechner einfach (mit einem einzigen Installer oder einer Art Container zum Beispiel) zu implementieren?

Antwort

2

Für JBoss/Wildfly würde ich empfehlen, Blick auf Wildfly Swarm. Letztendlich erstellt es eine einzige .jar Datei, die in der Befehlszeile mit etwa java -jar myjarfile.jar ausgeführt werden kann. Sie müssen immer noch herausfinden, wie Sie das starten (und der Benutzer benötigt eine JVM installiert), aber Sie müssen keinen vollständigen Server installieren. Sie erwähnen es nicht, aber es gibt Spring Boot, die etwas sehr ähnliches tut, wenn Sie Spring verwenden.

Ihre Anwendung muss die Client- und Serverseite in eine wahrscheinlich .war Datei packen, die in die runnable .jar Datei gepackt wird. Sie benötigen auch eine Möglichkeit, der Client-Seite anzugeben, wo sich der Server befindet - sei es localhost oder Ihre Standard-Website.

Sie erwähnen nicht, wenn Sie irgendeine Art von Datenbank-Backend haben, aber das würde so etwas wie eine eingebettete H2- oder Derby-Datenbank benötigen, um im "Uberjar" als Backing Store zu verwenden.

+0

Thx. Ja, ich brauche eine Datenbank. Ich dachte über die Verwendung einer Standard-MySQL-Datenbank nach. Soll ich lieber eine eingebettete Datenbank auch für die Standard-Webanwendung verwenden? –

+0

Der Grund, warum ich H2 oder Derby vorgeschlagen habe, war, dass sie beide Java sind. MySQL ist eine native ausführbare Datei, was bedeutet, dass Sie separate Versionen für Linux und Windows benötigen. Ich bin nicht überzeugt, dass Sie all das entweder mit Swarm oder Spring Boot verpacken können. Kurz vor einer Docker-Lösung kommen Sie in eine ziemlich komplexe Implementierung. Brauchen Sie wirklich die "On Premise" Version? – stdunbar

+0

Ja, leider ist dies eine Kundenanforderung, die Plattform sowohl als SaaS- als auch als On-Premise-Lösung zu haben. Anfangs wollte er, dass wir 2 verschiedene Versionen entwickeln, aber es ist doppelte Arbeit ... –

Verwandte Themen