# JSTL Lib Versionschaos



## Antoras (22. Nov 2009)

Hallo,

ich blick gerade nicht mehr durch die ganzen Libs durch, die ich für JSTL benötige. Hatte mit Tomcat 5.5 und Servlet 2.4 ein Dynamic-Webproject in Eclips angelegt. Danach hab ich für JSTL noch die 
	
	
	
	





```
jstl-1.2.jar
```
 in das WEB-INF/lib-Verzeichnis kopiert und in die JSP folgenden Befehl geaddet:

```
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
```
Ein 
	
	
	
	





```
c:out
```
 Kommando hat erfreulicherweis funktioniert. Erst als ich ein 
	
	
	
	





```
c:forEach
```
 benutzen wollte kam folgende Exception:

```
java.lang.ClassNotFoundException: javax.el.ValueExpression
```
Diese Klasse ist Bestandteil der Lib 
	
	
	
	





```
el-api.jar
```
, die ich im Tomcat 6 gefunden hab. Bei den älteren Tomcat-Versionen stimmt das package der Klasse nicht.
Nach hinzufügen der Expression-Lib bekam ich aber neue Exceptions, die laut Google auf einen Versionskonflikt deuten:

```
org.apache.jasper.JasperException: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext;
javax.servlet.ServletException: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext;
java.lang.NoSuchMethodError: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext;
```
Bevor ich da jetzt noch ewig herumexperimentiere wollt ich wissen welche Lib-Versionen ich für einen Tomcat 5.5 / 6 benötige. Kann mir da jemand weiterhelfen?


----------



## HLX (23. Nov 2009)

Tomcat 5.5 implementiert Servlet 2.4 und JSP 2.0. Hier darfst du nur JSTL 1.1 verwenden. Die Apache-Implementierung findest du hier: Apache Taglibs - Apache Standard Taglib: JSP[tm] Standard Tag Library (JSTL) implementations

Tomcat 6.0 implementiert Servlet 2.5 und JSP 2.1. Hier verwendest du die JSTL 1.2. Nimm dazu besser die Implementierung von SUN, da die Apache-Implementierung noch nicht ganz fertig zu sein scheint.


----------



## Antoras (23. Nov 2009)

Danke dir, jetzt geht es endlich.  Zuerst hat sich zwar an den Fehlermeldungen nichts geändert obwohl ich Tomcat 5.5 und JSTL 1.1 verwendet und diese in Eclipse eingebunden hatte, dann bin ich aber auf die Idee gekommen, die anderen, neueren Libs aus dem Verzeichnis zu löschen. Und schon lief alles perfekt. 
Eclipse hat wohl auf die neueren Libs zugegriffen, obwohl ich sie nicht ins Projekt eingebunden hatte.


----------

