# JavaEE Anwendung weitergeben



## masterjule (5. Mrz 2012)

Hey,

wie kann ich denn eigentlich meine JavaEE Anwendung an Benutzer weitergeben?
Ich habe die Ear-Datei, da müsste soweit ja alles drin sein, aber ich brauche ja auch noch den Applicationserver und die Datenbank.
Wie wird das in der Regel gemacht?

Gruß
Julian


----------



## Marcinek (5. Mrz 2012)

z.b. in einer ZIP Datei.

Und die Datenbank hast du da als SQL Import drin.


----------



## masterjule (5. Mrz 2012)

Und wie läuft das dann mit der Installation des Applicationserver und des Datebbankservers ab?
Und auch die Steuerung, die Server müssen ja gestartet, die Anwendung Deployed werden...


----------



## Marcinek (5. Mrz 2012)

Das  hängt von der Anwendung ab.

Wir liefern auch Tools, die den JBoss als Dienst einrichten mit mehreren Port Konfigurationen...


----------



## masterjule (5. Mrz 2012)

Ok.

Bin noch Anfänger und weis deshalb noch nocht über alles bescheid 

Mein Projekt mach ich privat für mich daheim, hauptsächlich als Übung.
Ich habe eine Weboberfläche und arbeite mit Glassfish und vorerst Derby als DB.

Ich möchte das ganze an Freunde, zum testen, weitergeben. Dafür sollte die Einrichtung under Start und so natürlich möglichst einfach sein.

Wenn du irgendwelche Links oder sonstige Infos hast, nur her damit 

Gruß
Julian


----------



## Marcinek (5. Mrz 2012)

Naja wieso dann einen Application Server??

Dafür ist das nicht gedacht. 

Du könntest den Glassfish auch selber hosten und deine Freunde hätten die Clients dazu. Aber so einen Server deployst du nicht bei einem User ;D


----------



## masterjule (5. Mrz 2012)

Hmm.. Und wie würde man es dann machen?
Es soll vorerst nur lokal auf einem PC laufen udn ich habe eine Weboberfläche und EJBs, die ja wiederrum einen Applicationserver brauchen.
Oder gibt es da einen besseren Ansatz?


----------



## Marcinek (5. Mrz 2012)

Deploy den Server bei dir und gib deinen Freunden die URL. Oder du schickst denen das und die konfigurieren und starten den Server selber.

Aber das hast du schon ausgeschlossen.


----------



## masterjule (5. Mrz 2012)

Also ich habe mir das, in meinem Anfänger-Leichtsinn, so gedacht:
Ich habe einen Installer, der alles nötige Installiert und soweit konfiguriert.
Und dann kann ich einfach mit einem Doppelklick auf einen Starter das ganze komplett starten und auch wieder beenden.

Sollte doch eigentlich irgendwie gehen..


----------



## Sym (6. Mrz 2012)

Das geht schon - mit viel Aufwand. 

Ich würde auch empfehlen, irgendwo einen Test-Server zu hosten, auf denen Deine Freunde zum Testen zugreifen können.


----------



## JanHH (8. Mrz 2012)

Also dagegen spricht ja irgendwie schon die relativ grosse Datenmenge bei einem AS.. Also JBoss locker > 100 MB, Glassfish dürfte ähnlich sein. Ansonsten bietet sich da vielleicht der JBoss an, da er in dem Sinne nicht installiert werden muss sondern nur irgendwo hin entpackt, k.a. wie das mit Glassfish ist. Wenn man die embedded Datenbank nutzt, dürfte das also schon gehen, aber so richtig der Hit isses nicht..


----------



## krazun (8. Mrz 2012)

Es gibt den GlassFish auch als embedded Version. D.h. du kannst ihn wie jede andere lib als *.jar deinem Projekt hinzufügen und aus deinem Programm heraus starten/stoppen und Anwendungen deployn. In dem Fall müsstest du nur eine *.jar Datei weitergeben auf die deine Freunde doppelklicken und schön läuft der Server mit deiner Anwendung bei ihnen. Wenn dir das Web-Profile reicht ist die embedded GlassFish jar sogar nur 37MB groß. Du müsstest also nurnoch eine minimale Java Anwendung schreiben, welche den Server mit deinem Projekt startet. Das du Derby als DB nutzt passt auch, da man derby ebenfalls im embedded mode betreiben kann.

Schau mal auf Embedded GlassFish &mdash; Java.net 

Die Anleitungen bei Getting Started sollten ein guter Einstiegspunkt sein.

Da du allerdings selbst sagst das du grade erst mit Java EE anfängst würde ich auch dazu raten einen Server bei dir lokal laufen zu lassen und deinen Freunden einfach die URL zu schicken. Wenn dir das nicht reicht weil die Anwendung 24/7 für deine Freunde erreichbar sein soll kannst du dir auch irgendwo einen Virtual Server anmieten und GlassFish da installieren. Das lohnt sich allerdings nur wenn du mehr vor hast als nur mal kurz die Anwendung zu zeigen. Da diese ca 15 € im Monat kosten. Je nach Anbieter unterschiedlich.

grüße,
krazun


----------



## masterjule (9. Mrz 2012)

Erstmal Danke für die Antwort 
Die embedded Version habe ich auch schon gesehen und klingt eigentlich ganz gut.
Habe auch schon einen kleinen Versuch gestartet, also ein kleines Programm, das den embedded Glassfish einfach nur startet. Hat schonmal funktioniert.

Das Web-Profil sollte eigentlich reichen.
Das ganze werde ich mir auf jedenfall genauer anschauen!

Jetzt anfänglich reicht natürlich auch, wenn es bei mir lokal deployt ist. Aber man will ja irgendwan auch mal fertig werden und dann andren eine einfache Möglichkeit bieten 
Wird aber sicher noch eine Weile dauern, schadet trotzdem nicht, sich mit dem Thema zu beschäftigen.. Will ja viel lernen 
Und Ahnung muss man ja zum lernen erstmal keine haben. Hatte vorher auch null Ahnung von JEE, JPA, JSF usw. und jetzt habe ich immerhin schonmal eine Weboberfläche und kann Daten aus der Datenbank auslesen und reinschreiben 

Gruß
Julian

Edit: Habe zu dem embedded Glassfish einen Thread und verlinke in hier einfach mal


----------



## Sym (9. Mrz 2012)

Aber später, wenn das Programm produktiv geht, dann soll es schon irgendwo einen Server im Netz geben, oder?


----------



## masterjule (9. Mrz 2012)

Das steht eigentlich noch garnicht fest. Hab mir da auch noch nicht so viel Gedanken gemacht.
Bis jetzt ist auch noch kein Mehrbenutzerbetrieb vorgesehen...
Ich habe das Projekt einfach aus Spaß und zu Übung gestartet und mal schauen, wo es micht hinführt 

Was spricht denn dagegen, es mit einem embedded Glassfish auszuliefern?


----------



## krazun (9. Mrz 2012)

masterjule hat gesagt.:


> Das steht eigentlich noch garnicht fest. Hab mir da auch noch nicht so viel Gedanken gemacht.
> Bis jetzt ist auch noch kein Mehrbenutzerbetrieb vorgesehen...
> Ich habe das Projekt einfach aus Spaß und zu Übung gestartet und mal schauen, wo es micht hinführt
> 
> Was spricht denn dagegen, es mit einem embedded Glassfish auszuliefern?




Wenn es nur der Übung dient spricht nichts dagegen 

Wenn es allerdings ein Programm ist das irgendwann mal produktiv genutzt werden soll und wirklich kein Mehrbenutzerbetrieb vorgesehen ist, dann wäre eine 2MB JavaSE Lösung wesentlich eleganter, performanter und unkomplizierter als ein 50MB Programm zu produzieren was jedesmal einen kompletten GlassFish hochfährt und eine JavaEE Anwendung deployt, wo der Benutzer extra seinen Browser aufrufen und eine 127.0.0.1 URL eingeben muss um als Single-User Daten in ner Datenbank zu verändern 

Eine Java EE Webanwendung macht meist nur dann Sinn wenn man sie irgendwo im Internet/Firmen Intranet zentral auf einem Server für viele Benutzer bereitstellen will. Bei Single-User Anwendung ist man meist mit einer einfachen Desktop Anwendung besser beraten.

grüße,
krazun


----------



## masterjule (9. Mrz 2012)

Zuerst war es ja auch eine einfache Desktop Anwendung.
Aber habe dann nochmal von vorne angefangen und eine Web Anwendung draus gemacht. Hat mich halt mehr interessiert 
Und ich finde es ganz schön, so eine Web-GUI 
Das ganze hat als Übungprojekt angefangen. Nur wenn man programmiert lernt man es richtig und auf langweilig Übungsaufgaben hatte ich keine Lust mehr. Also habe ich mir ein Projekt überlegt.

Ist also in erster Linie Übung, aber mit dem Gedanken, was nützliches zu werden.
Bin halt eigentlich noch totaler Anfänger und so läuft das ganze halt auch ein bischen ab


----------



## masterjule (23. Mrz 2012)

Könnte ich eigentlich auch einen embeddable EJB Container für meine Application verwenden?
Dann würde ich mir den GlassFish sparen


----------



## masterjule (27. Mrz 2012)

Kann keiner was zu embedded EJB-Container sagen?
Bin für jeden Tipp, jede Meinung dankbar!


----------



## Sym (27. Mrz 2012)

Ein embedded GF funktioniert natürlich.

Ich würde trotzdem davon absehen, einen Web- bzw. Appserver zu verwenden. Die haben einen anderen Sinn und Du baust eine Standalone-Applikation.


----------



## masterjule (28. Mrz 2012)

Aber ohne Appserver würde meine Anwendung ja garnicht laufen oder gibt es da eine andere Möglichkeit?


----------



## Sym (28. Mrz 2012)

Ich verstehe nicht, warum Du eine Webanwendung schreibst, wenn Du eigentlich eine Standalone-Lösung baust und willst.

Zum lernen ist das sicherlich interessant, aber an Freunde ausliefern um es "produktiv" zu nutzen ist das ungeeignet.

Ich würde Dir raten, die Anwendung so umzusetzen, wie es richtig ist. Direkte GUI (z.B. Swing), gerne CDI und JPA 2 (oder ähnliches).


----------



## masterjule (30. Mrz 2012)

Es soll schon zum lernen sein, aber ich wollte, für die Motivation, halt was sinnvolles, nützliches machen.
Deshalb wird es eine Webanwendung, die ich später auch gerne einsetzen würde.

Ich werde wohl noch eine Benutzerverwaltung hinzufügen und es dann auf einem Server laufen lassen (bin ja einsichtig )


PS: Gibt es wirklich keine einfache / sinnvolle Möglichkeit für eine Standalone Webanwendung?
Aber wenn ich es mir so recht überlege.. Die Konfigurationssoftware für mein TomTom-Navi ist auch eine Webanwendung.. Und die läuft auch nicht lokal..
Nagut, ich glaube, ich bin manchmal ein wenig zu naiv


----------



## FArt (30. Mrz 2012)

masterjule hat gesagt.:


> PS: Gibt es wirklich keine einfache / sinnvolle Möglichkeit für eine Standalone Webanwendung?



Doch, natürlich gibt es das. Es gibt Applikationen, die bei Kunden (z.B. Arzt) installiert werden und sowohl mit einem Einzelarbeitsplatz (Client und Server auf einer Maschine) oder für mehrere Arbeitsplätze (ein Client ist auch Server oder Server ist tatsächlich einzeln im LAN oder WAN) installiert sind.

Da kann es durchaus gerechtfertigt sein, dass man für die Kleinabnehmer nicht eine gesonderte Standalonevariante schraubt, sondern einfach den kleinen Server installiert.

Entweder macht man die Installation über Installer und/oder Skripten oder über einen Techniker, hängt natürlich vom Umfang und Art der Installation ab. Einen einfachen Applicationserver oder Webserver und eine kleine DB hat man natürlich schnell über Installer/Skripten (z.B. puppet oder chef) installiert.

Aber am Puls der Zeit bist du, wenn du deinen Server in die Cloud stellst.. ;-)


----------



## chivu (24. Dez 2012)

@masterjule hast du inzwischen Lösung für dein Problem gefunden?


----------

