JSP Fehlermeldung bei Verwendung von Java-Expression-Language

Derzeit sitze ich an einer Aufgabe für die FH, nach welcher ich zum einen einen Usernamen abfragen Soll, der dann über die Sitzung irgendwo (bei mir im footer) auf der Seite angezeigt werden soll. Zum anderen sollen wir noch die Möglichkeit bieten neue Artikel in die Seite einzubinden. Das ganze soll mit MVC realisiert werden.

Jedes mal wenn ich folgende Ausdrücke benutze "${userName}" bekomme ich eine ServletException ("java.lang.NoClassDefFoundError: Could not initialize class org.apache.jasper.el.ELContextImpl").
Ich google schon seit zwei Tagen nach einer Lösung, doch bisher habe ich noch nichts gefunden. Ich benutze Eclipse für Java EE und Tomcat 7 als Container (als teil von XAMPP).


Noch eine weiter Frage:
Mich interessiert, ob meine Realisierung eines MVC (in der JSP soll mit den Beans gearbeitet werden, die der Controller vorher aussucht) soweit korrekt ist. (da ich derzeit Probleme habe das ganze zum laufen zu bekommen habe ich nur einen userName zur request und nicht ein Objekt user zur session hinzugefügt)
Mein Controller -> https://github.com/iButters/WebEngineeringI/blob/master/src/Servlets/Controller.java
Meine User Klasse -> https://github.com/iButters/WebEngineeringI/blob/master/src/Classes/User.java
Meine JSP-Dateien ->https://github.com/iButters/WebEngineeringI/tree/master/WebContent

Für erstellen neuer Artikel dachte ich mir, dass ich eine Klasse Pages (die außerdem eine statische Liste mit allen erzeugten Pages hält) benutze, welche neue Seiten hinzufügt, die wiederum Artikel enthalten (String Titel, String Text, String Code). Durch einen Klick auf einen Link wird die entsprechende Page angefordert und der JSP verfügbar gemacht. Die JSP entnimmt dann den sämtliche Artikel und fügt deren Attribute in die Seite ein.
Ist das so richtig gedacht?
 
Das hat nix mit dem Problem zu tun. Das ist einfach ein Eclipse Bundle, welches diverse PlugIns usw für die Java EE Entwicklung schon mitliefert.
 
Ich habe mein Projekt mal auf ein Minimum reduziert, um zu zeigen, wo der Fehler liegt.
Auf meiner Loginpage -> https://github.com/iButters/WebEngineeringI/blob/master/WebContent/login.jsp
knallt es bei Zeile 34
Java:
"<cut value="${sessionScope.userName}" default="hello"/>
. c😱ut funktioniert wunderbar, so lange ich keine JEL benutze. Ich habe außerdem auch schon alle Scopes ausprobiert und es auch ohne versucht, aber das ändert nichts.

Hier mal ein Screenshot von der Fehlermeldung (ohne sessionScope):
X0rGJ9C.png


Fehlermeldung (mit sessionScope):
xZDn3Fg.png


Er schrieb er braucht JavaEE
Habe es nur dabei geschrieben, für den Fall dass es an der IDE liegen könnte.
Laut Vorlesung kann ich das auch mit Standard Eclipse für Java machen, aber da hatte ich nicht die Möglichkeit ein Dynamisches Webproject anzulegen. Also sollte mir nur die Arbeit erleichtern.
 
Zuletzt bearbeitet:
Wie baust du dein Project? Mit Maven, gradle, ... ? Wie sieht das Build-Sciprt aus?

Schau mal in den fertigen Build, also dein war-file, welches deployed wird. Speziell in WEB-INF/lib .... und zeig uns mal bitte den Inhalt.
 
@stq Ein war Datei ist in meinem Projekt irgendwie nicht enthalten. Soweit ich weiß, brauche ich das nur, wenn ich es auf einem anderen Server deployen will? Ich rufe meine Seiten direkt unter Eclipse ("Run On Server"). Wenn ich die trotzdem brauche, wüsste ich nicht, was ich zu tun hätte.

Maven und Gradle benutze ich nicht. Ich habe ein einfaches Dynamisches Webprojekt erstellt.
Unter WEB-INF/lib befindet sich nur die jst-1.2.jar (welche ich für taglibs brauchte). ansonsten ist WEB-INF leer.

Ich habe mir schon den TomCat Server von einem Kollegen kopiert, bei dem die EL funktionieren. Aber leider bringt mir das rein gar nichts. Ich glaube, werde Eclipse noch mal löschen und neu herunter laden.
 
Ich habe jetzt mal ein war file erstellt und es auf meinen TomCat server gepackt. Dann über XAMPP controll center den server gestartet und im browser die seite aufgerufen.

Funktioniert einwandfrei 😀
Ich habe mein ganzes Wochenende mit diesem billigen Fehler verbracht, dabei läuft eigentlich alles.
Muss wohl in Eclipse was falsch eingestellt sein.
 

Zurück
Oben