Glassfish 5 in Eclipse 2018-12 | in den JSF Capabilities wird nur JSF 2.2 angeboten

malt1981

Mitglied
Hallo zusammen,
ich bin neu hier und bin auch Anfänger in der Programmierung. Aktuell möchte ich gerade java ee erkunden. Nun habe ich gleich bei der Erstellung eines dynamischen Web-Projekts ein Problem, für welches ich keine Lösung finden konnte (auch nach Stunden mit Google):

Ich habe einen Glassfish 5 Webserver in Eclipse verwendet. Quelle: https://javaee.github.io/glassfish/download
Ich habe den Link GlassFish 5.0 - Full Platform verwendet.

Bei der Erstellung des Projekts in Eclipse kommt man im 4. Schritt zu den JSF Capabilities. Hier steht dann "GlassFish 4 includes JSF2.2 on system classpath". Ich möchte aber JSF 2.3 - wie ich es auch am Anfang sehen konnte (s. Screenshots).

Ich würde mich freuen, wenn jemand eine Lösung hätte. Da ich am lernen bin, arbeite ich nach einem Buch, leider komme ich hier nicht weiter, weil ich die Anwendung nicht deployen kann.
Da ich sonst exakt nach Buch vorgegangen bin - und die einzige Abweichung zum Buch die obige Angabe "GlassFish 4... JSF 2.2" ist, vermute ich, es könnte daran liegen. Außerdem ist es ja doch seltsam, wenn ich eigentlich GlassFish 5 installiert habe. Ich habe auch sonst definitiv keinen Webserver installiert - vor allem keinen GlassFish 4.

Vielen Dank im Voraus - und auch vielen Dank allen Mitgliedern dieses Forums. Auch wenn ich mich erste jetzt angemeldet habe, haben mir die Einträge schon häufig geholfen.

vgnew_Proj.jpg jsf_cap.jpg
 
Ich würde mir da erstmal keinen Kopf machen und es einfach als Hinweis verstehen, dass keine Bibliotheken zum Projekt selbst hinzugefügt werden (müssen), weil GF JSF schon mitbringt.
 
Hallo,
ok, vielen Dank für die Info. Dann ist das Problem wohl ein Anderes. Leider schaffe ich es einfach nicht, das Projekt zu deployen. Glassfish haut mir immer einen Fehler um die Ohren. Ich hätte das LogFile noch an diesen Beitrag gehangen. Evtl. kann mir hier jemand einen Tipp zur Behebung geben. Mir fällt der Eintrag "Unable to find CDI BeanManager" auf !?! Hinweis: Ich habe bisher nur das Projekt erstellt und eine index.xhtml (hier aber noch nichts gemacht). Nun soll ich lt. Buch das Projekt im WebServer deployen. Oder ist das so schlicht falsch?

In jedem Fall vielen Dank für die Hilfe und die Geduld. Ich habe mich nun schon durch knapp 800 Seiten gekämpft - und würde gerne noch weiter kommen, leider steht es hier gerade an :-(
 

Anhänge

Hallo,
vielen Dank für den Tipp. Leider habe ich das so wie in der Anleitung beschrieben nicht hin bekommen :-( Inzwischen habe ich aber eine Umgehung gefunden 🙂 Ich nutze nun nicht die "GlassFish System Library". Stattdessen habe ich mir die "javax.faces-2.3.0.jar" Datei gezogen und in den JSF Capabilities als "User Library" eingefügt. Ist wohl nicht so gedacht, aber funktioniert. Ich konnte das Projekt deployen und die JSF Funktionen funktionieren.

Auf jeden Fall vielen Dank für die Hilfe.
 
@malt1981 Aloah! Ich hänge am gleichen Ort wie Du anno dazumal fest.... habe das gleiche Buch gekauft und suche nun schon seit Tagen nach einer Lösung... langsam verliere ich die Nerven... wie hast Du das mit der User Library hinbekommen. Kannst du Deine Lösung mit einem Screenshot untermauern? Wenn ich die "javax.faces-2.3.0.jar" ziehe und als User Library hinzufüge knallt es eine Exception nach der Anderen... welche jars hast Du alle in Deiner User Library?

Danke für Deine Antwort.....
 
Hallo,
ich fürchte eine wirklich zufriedenstellende Lösung kann ich nicht anbieten. Ehrlich gesagt, habe ich JSF aufgegeben, da ich immer wieder auf Probleme gestoßen bin. Ich wollte dann auf java11 umsteigen, dann hat's mit dem Glassfish gar nicht mehr geklappt :-(
Damals habe ich mir eine User-Library gemacht mit javay.faces-2.3.0 und dann noch der jsf-impl.jar (https://jar-download.com/?search_box=jsf-impl ) . Diese eben dann in den JSF Capabilities verwendet. Einen Screenshot von der funktionierenden Konfiguration kann ich nicht anbieten, ich habe das Project schon gelöscht, wie gesagt - habs dann letztendlich aufgegeben.
Evtl. hilft das: Glassfish hat ja mittlerweile einen "Nachfolger/ Ableger" - das ist der Payara Server (aktuell wohl Version 5). Der funktioniert auch mit Java11 und ist "angeblich" voll kompatibel mit JSF. Damit der in Eclipse geht, dieses Plugin installieren https://marketplace.eclipse.org/content/payara-tools#group-details . Ansonsten alle Schritte so ausführen wie im Buch beschrieben.
Zumindest konnte ich so ein Testprojekt anlegen.
Ich hoffe das hilft dir trotzdem etwas weiter. Würde mich freuen, wenn du kurz posten könntest, ob du weiter gekommen bist.
 

Anhänge

  • screen.png
    screen.png
    71,1 KB · Aufrufe: 2
Evtl. hilft das: Glassfish hat ja mittlerweile einen "Nachfolger/ Ableger" - das ist der Payara Server (aktuell wohl Version 5). Der funktioniert auch mit Java11 und ist "angeblich" voll kompatibel mit JSF.
Oh, da sind ein paar Dinge klar zu stellen.

Java EE (jetzt Jakarta EE) ist eine Sammlung von Spezifikationen, darunter auch JSF. Das Projekt Glassfish stellt Referenzimplementierungen für diese Spezifikationen bereit und bietet unter dem Namen Glassfish einen entsprechenden Application Server an. Payara Ltd ist dagegen eine Firma, die einen Application Server herausgibt, der auf Glassfish basiert, und auf den Namen Payara Server hört. Für diesen ist auch kommerzieller Support erhältlich. Payara ist, wenn man so will, die Übernahme von Glassfish durch die Community.

Java EE 7 enthält JSF 2.2. Java EE 8 dagegen JSF 2.3. Wer also einen Java EE 8 Application Server verwendet, wird automatisch JSF 2.3 bekommen. Dazu zählen natürlich Glassfish 5 und ebenso Payara 5.

Hinzu kommt eine weitere Besonderheit, die aber nichts mit JSF zu tun hat. Oracle hat Java EE (inkl. Glassfish) an die Community übergeben, genauer an die Eclipse Foundation. Aufgrund von Namensrechten darf "Java" nicht verwendet werden, daher heißt Java EE jetzt Jakarta EE. Die Übergabe war/ist ein riesiger, rechtlicher Akt, so dass die erste Version von Jakarta EE 8 nichts anderes als die rechtlich angepasste Version von Java EE 8 ist.

Wenn Ihr Maven oder Gradle verwendet, genügt eine Abhängigkeit. Unter https://mvnrepository.com/artifact/javax/javaee-api/8.0 (Java EE 8) bzw. https://mvnrepository.com/artifact/jakarta.platform/jakarta.jakartaee-api/8.0.0 (Jakarta EE 8) findet Ihr die passende Angabe für Euer Buildsystem. Für JSF 2.3 sollten keine weiteren Abhängigkeiten notwendig sein, insbesondere solltet ihr keine JSF-Jars mit Eurem Projekt ausliefern.
 

Zurück
Oben