# Wie deployt man richtig? :)



## MichiM (10. Jan 2006)

Hi,

[list:ccf694a6cb]ich versuche seit einiger Zeit immer wieder mal,
irgendwelche kleinen Webapplikationen einfach mal zum Test auf einem Java-Webserver zum Laufen zu kriegen.

Ich entwickle z.B. mit NetBeans oder Eclipse und kann das ganze aufm localhost-Tomcat wunderbar starten,
nicht jedoch auf einem externen Server (genauere Angaben s. weiter unten).

Ich hab bisher immer versucht, indem ich die Komponenten der Applikationen per FTP auf meinen Testserver
(www.myjavaserver.com) kopiert und dann eben im Browser die URL aufrufen wollte.
Klappt nicht, selbst, wenn ich die Strukturen so nachbilde wie auf dem localhost.
Ein JSP kann ich noch ausführen, aber andere Sachen wie Servlets nicht.
Die web.xml ist die gleiche wie aufm localhost, wo das ganze funktioniert,
indem ich das Servlet durch Aufruf über den entsprechenden Namen
im zuständigen XML-Tag der web.xml an die URL des Projekts angehängt starte.



Nun weiß ich eben nicht: Liegts an fehlenden Diensten aufm Server oder mach ich einen Fehler beim Deployen?

Kenn mich jetzt leider auch noch zu wenig mit den Applicationserver-Typen aus.

Auf dem Testserver, den ich da verwende, läuft laut deren Webseite jedenfalls Folgendes:

* J2SE 5.0 based application server
* Servlet 2.3
* Java Server Pages (JSP) 1.2


Vielleicht ist dieser Ansatz mit "FTP und dabei manuell die Verzeichnisstruktur vom localhost nachbauen" je eh völliger Blödsinn.  :lol:

Wie macht man das am besten? Am Liebsten wärs mir, auf Wunsch direkt auf den Web-Applicationserver zu deployen.

Das Problem ist also wie gesagt nicht, dass das ganze nicht aufm localhost läuft, sondern nicht auf einem Web-Applicationserver.  Auf was für Webservern lasst Ihr Eure Java-Webapplications eigentlich laufen? Eigen aufgesetzte? Gehostete? Irgendwelche kostenlosen Testserver? 

Ich hätt so viele Fragen zu diesem ganzen Java-Webapplication-Zeug, das kann sich gar keiner vorstellen, aber das soll mal fürn Anfang wieder genügen...  


Gruß Michi[/list:u:ccf694a6cb]


----------



## meez (10. Jan 2006)

Ich würd nicht direkt auf den "produktiven" Appserver deloyen, sondern local einen Server haben, der hot-deployment unterstützt...
Danach einfach noch ein ant File erstellen, und du kann schön aus deiner IDE builden, packen, deployen...
Wenns dann OK ist kannst du das ganze Archive (Ich würds nicht flat expolded auf dem Server haben) mit FTP rüberkopieren...


----------



## MichiM (10. Jan 2006)

Hi meez,



			
				meez hat gesagt.:
			
		

> Ich würd nicht direkt auf den "produktiven" Appserver deloyen, sondern local einen Server haben, der hot-deployment unterstützt...



Was wäre da für ein Server geeignet? Hab momentan Tomcat und Sun Application Server lokal drauf.



			
				meez hat gesagt.:
			
		

> Danach einfach noch ein ant File erstellen, und du kann schön aus deiner IDE builden, packen, deployen...



Das geht momentan in NetBeans schon ganz gut. Mit Eclipse tut ich mich in dem Fall insgesamt etwas schwerer, aber auch da lässt es sich hinkriegen.



			
				meez hat gesagt.:
			
		

> Wenns dann OK ist kannst du das ganze Archive (Ich würds nicht flat expolded auf dem Server haben) mit FTP rüberkopieren...



Heißt das, als .war-Archiv oder wie am besten?

Gruß Michi


----------



## meez (11. Jan 2006)

MichiM hat gesagt.:
			
		

> Was wäre da für ein Server geeignet? Hab momentan Tomcat und Sun Application Server lokal drauf.



Egal..Soweit ich weiss unterstützen die meisten App.-Server und Servlet-Container hot-deployment..
Sonst sind sicher Jboss und Apaches Geronimo noch Alternativen...



			
				MichiM hat gesagt.:
			
		

> Heißt das, als .war-Archiv oder wie am besten?



Yep...


----------



## Bleiglanz (11. Jan 2006)

jo: deployen tut man immer ein .war - Archiv

nur zum Entwickeln arbeitet man mit einem "explodierten .war", weil dadurch der Turnaraound Ändern - Compile - Anschauen kürzer wird


----------



## bronks (11. Jan 2006)

MichiM hat gesagt.:
			
		

> ... selbst, wenn ich die Strukturen so nachbilde wie auf dem localhost ...


Genau da liegt das Problem! Mußt mal die Doku von myjavaserver.com lesen ...


----------



## MichiM (11. Jan 2006)

bronks hat gesagt.:
			
		

> MichiM hat gesagt.:
> 
> 
> 
> ...



Die hab ich natürlich auch mal gelesen, aber selbst, wenn ich es so mach (z.B. Verzeichnis "/servlet" anlegen), komm ich nicht weiter. Ich schau heute abend mal, ob ichs hinbekomm, muss nachher gleich mal weg.

Danke Euch schon mal! 
Michi


----------



## apparat (11. Jan 2006)

gibt es eigentlich auch eine möglichkeit das man das deployen so gestalten kann das man den produktionsserver nach einer änderung in den klassen nicht erst anhalten muss bevor die änderungen aktiv sind? 

ich glaube beim websphere gibt es eine möglichkeit wo die klassen nachgeladen werden nur wie deploye ich dann richtig? bisher hat er nämlich immer die anwenudng deinstalliert und automatsich wieder installiert. das heißt, er musste sie ja eigentlich auch dafür stoppen. nur sollte man nen produktionsserver nicht stoppen müssen für änderungen


----------



## meez (11. Jan 2006)

Das Feature nennt sich hot-deployment...
Die App. muss er aber schon stoppen, da fürt kein Weg dran vorbei, wenigstens muss aber der Server selber nicht gestoppt werden...

ABER:  HOT-DEPLOYMENT o.ä. NIEMALS AUF PRODUKTIVEN SYSTEMEN ANSCHALTEN, DA EXTREMSTENS INSECURE!!!


----------



## apparat (12. Jan 2006)

ja gut aber wenn ich die app stoppen muss ist es doch genauso. die leute können dann halt leider nicht ihre arbeit weiter machen und gerade das wllte ich ja umgehen. hmm schade


----------



## bronks (13. Jan 2006)

apparat hat gesagt.:
			
		

> ja gut aber wenn ich die app stoppen muss ist es doch genauso. die leute können dann halt leider nicht ihre arbeit weiter machen und gerade das wllte ich ja umgehen. hmm schade


Beim HotDeploy bleibt die App für den User nur kurz stehen und dann geht es gleich weiter. Das bekommt niemand mit.


----------



## apparat (13. Jan 2006)

und wie sieht es aus wenn der user gerade auf einen datensatz hockt und diesen sperrt? gehen die datenbank-verbindungen dann verloren? solche dinge dürfen ja dann auch nicht vorkommen. nicht das es dann probleme gibt


----------



## MichiM (21. Jan 2006)

Hallo,

Zumindest das Deployen, auch auf den beiden kostenlosen Test-Webservern, klappt nun endlich.

Boah, war das ein Kampf!  :lol:

Ich schätze, dass mein Testserver (myjavaserver.com) doch recht unkonventionelle Strukturen verlangt, ohne natürlich bisher viel Kontakt zu Hosting-Servern gehabt zu haben... Keine Ahnung, was da konfigurierbar ist und konfiguriert wird, aber es wich zumindest von meinen angelesenen Annahmen ab.

Üblicherweise landet doch ein Servlet schon mal nicht im selben Verzeichnis (root) wie das JSP? genau das ist hier aber erforderlich. Und dann muss das Servlet in ein Package, das genau so heißt, wie der Useraccount. Alles andere geht nicht.  Das JSP muss dieses Package per import einbinden und das Servlet als Klasse dieses Packages ausführen. Keine web.xml in diesem Fall. Da rennt man natürlich erstmal eine Weile mit dem Kopf gegen die Wand, wenn man überall liest, dass man ein WAR deployt und nicht einzelne Dateien und die noch dazu alle in derselben Verzeichnisebene... :wink:

Wenn sich also ein Anfänger bei

http://www.myjavaserver.com (kostenloser Java Server)
angemeldet hat und mit dem Deployen erstmal nicht klarkommt, helf ich natürlich gern - Hab das ganze auch schon mal als kleine Anleitung in Word niedergetippt und kann jemandem, der da so ein Deploy-Problem hat, jederzeit eine PDF-Hilfe zukommen lassen.  

Gruß Michi


----------

