# JSF mit Hibernate



## miketech (23. Mai 2007)

Hi zusammen,

ich möchte gerne ein Web-Projekt mit JSF umsetzen. Allerdings würde ich auch gerne einen ORM verwenden. Kann ich JSF und Hibernate kombinieren ohne gleich auf einen ganzen Applikationsserver zurückgreifen zu müssen? Die Anwendung wird auf einer nicht unbedingt schnellen Kiste laufen, daher möchte ich auf einen Applikationsserver verzichten und nach Möglichkeit nur Tomcat nutzen.

Oder gibt es irgendwie eine Möglichkeit z.B. JBoss so abzuspecken, dass ich einen EJB Container habe mit JPA? Ich hab nur 600 MHz und 256 MB RAM zur Verfügung.

Gruß

Mike


----------



## KSG9|sebastian (23. Mai 2007)

Du brauchst für Hibernate auch keinen EJB-Container.
ORM ist im Normalfall etwas langsamer, da es bei geringen Daten recht viel Overhead verursacht durch berechnungen. Vorteil ist aber dass diverse Dinge die Caching, Lazy Loading u.s.w. schon mit drin sind.


----------



## Guest (24. Mai 2007)

Es gibt auch den Embeded EJB Container von JBoss. Der sollte sich leicht in Tomcat integrieren lassen.


----------



## miketech (24. Mai 2007)

Da stellt sich nur die Frage: Habe ich dann starke Performanceeinbußen? Wie gesagt, meine Hardware ist nicht sonderlich leistungsstark. Hab schon Angst, dass mir das JSF-Ding um die Ohren fliegt, wenn ich nur Tomcat einsetze.

Gruß

Mike


----------



## KSG9|sebastian (24. Mai 2007)

Ist wohl die Frage ob es am Rechner oder der Konfiguration vom Tomcat/Hibernate liegt.


----------



## miketech (24. Mai 2007)

Also Du bist der Meinung, dass es prinzipiell kein Problem wäre? Vorausgesetzt Tomcat ist mit Hibernate richtig konfiguriert? Weiß nicht, was es zusätzlich kostet, wenn ich noch einen EJB Container einsetze  Aber der muss ja nicht unbedingt sein. Denke, dass ich mit JSF dann ganz gut klarkomme.

Gruß

Mike


----------



## Jockel (24. Mai 2007)

miketech hat gesagt.:
			
		

> Hab schon Angst, dass mir das JSF-Ding um die Ohren fliegt, wenn ich nur Tomcat einsetze.


Vielleicht schonmal testweise einen Tomcat aufsetzen?! Davon mal abgesehen, solltest du vieeeeeel Zeit mitbringen, wenn du dann auch wirklich mit deiner Web-Applikation arbeiten möchtest.
Warum bist du denn auf die alte Gurke angewiesen?


----------



## miketech (24. Mai 2007)

Aus finanziellen Gründen. Meinst, dass das überhaupt keinen Sinn macht? Sollte ich vielleicht gleich lieber PHP oder so nehmen?

Gruß

Mike


----------



## KSG9|sebastian (25. Mai 2007)

Welches OS läuft den drauf? 256RAM geht schon wenn die Anwendung nicht zu riesig wird und du nicht unbedingt windows einsetzt. Würd dir  zu ner Linux-Distri raten, und dann wirklich nur das installieren was auch benötigt wird.X-Server und so Quatsch auf keinen Fall laufenlassen, dann müsste das schon gehen


----------



## KSG9|sebastian (25. Mai 2007)

ach ja, n halbes gig RAM kostet doch für die Mühle nichtsmehr...


----------



## miketech (25. Mai 2007)

Es läuft ein Ubuntu auf der Kiste. 

Ein halbes Gig kostet trotzdem noch an die 60-70 EUR. 

Gruß

Mike


----------



## Guest (28. Mai 2007)

Also einen Application Server brauchst du auf alle Fälle nicht.
Aber aus eigener Erfahrung kann ich dir sagen, dass die Kombination JSF und Hibernate nicht trivial ist.
Dank des Request-Handlings von JSF ist es nicht so einfach möglich den Zeitpunkt wann eine Hibernate-Session aufgebaut werden soll bzw. wann sie geschlossen werden soll zu bestimmen.
Es gibt hier 2 Ansätze:

1.) Session per Request Pattern
wiki.apache.org/myfaces/Hibernate_And_MyFaces

2.) Die Nutzung von Spring bzw Spring AOP

Das Session per Request Pattern ist nicht 100%ig zuverlässig...


----------



## miketech (28. Mai 2007)

Ok, danke. Ansonsten mach ich die paar Anfragen halt per Hand mit JDBC. JDBC 4 hat ja ein paar sehr interessante Features mit den Annotationen, die das Handling dann recht einfach machen sollten.

Gruß

Mike


----------



## Guest (28. Mai 2007)

Jo das ist richtig, doch solltest du diese Anfragen nicht direkt in dem Controller bzw in der Action machen sondern über DAOs

http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html

Dann kannst du leicht von JDBC4, auf Hibernate, ... umsteigen


----------



## miketech (28. Mai 2007)

Ok, schau ich mir mal an. Danke!

Mike


----------

