# taglib wird nicht gefunden



## ma_ria (29. Nov 2007)

hallo liebe foris,

ich hab folgendes Problem:

org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application

Ich will folgendes machen: von einer jsp1 wird auf ein servlet verlinkt, dieses packt ein paar attribute in session und request und macht einen forward auf jsp2. (klassisches model2)

in jsp2 will ich über eine liste iterieren und hab gelesen das scripptles lieber duch tagbibliotheken ersetzt werden sollen.

hab dann folgendes in meiner jsp2:

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

ich benutzte jboss als application server und hab javaee.jar im eclipse build path und im ant classpath

ich weiß nicht warum diese exception kommt die standarttaglibs sind doch im javaee.jar file mit drin oder? fehlt sonst noch was, muss dazu was in die web.xml?

über hilfe wär ich sehr dankbar  weil ich steh wohl mächtig aufm schlauch und raffs einfach nich

schöne grüße
maria


----------



## HLX (29. Nov 2007)

Ob die Taglib-Deskriptoren im javaee.jar sind kannst du überprüfen, in dem du mit einem Entpacker ins JAR schaust und die entsprechenden .tld-Dateien suchst.

Ansonsten benötigst du einen JBoss, dessen Tomcat mindestens Version 5.0 ist, wg. JSP 2.0-Unterstützung.


----------



## ma_ria (29. Nov 2007)

hallo hlx,

also ich benutz den jboss 4.0.5 und da ist wohl tomcat 5.5 drin

in der javaee.jar datei gibs ein package servlets.jsp.jstl.core mit klasses drin was sich ja irgentwie so anhört wie die core taglib die ich benutzen will aber eine -tld datei gibs da nicht. wo müsst ich die denn suchen?

mir fällt noch ein, dass die javaee.jar nicht ausm jboss ist, also hat die mitm deployment eigentlich gar nix zu tun oder?
dem jboss fehlt also irgentwas um die taglib zu erkennen oder er hat sie gar nicht. aber wenn du sagst ab tomcat 5.0 wird die sache unterstützt... wo is denn da der denkfehler?

ich bin verwirrt
grüße maria


----------



## HLX (29. Nov 2007)

Tomcat 5 unterstützt die Taglibs, die du verwenden willst. Du musst ihm allerdings die Deskriptoren (.tld-Dateien) zur Verfügung stellen oder die Taglib in der web.xml registrieren.

Hast du mal im META-INF-Verzeichnis des 'javaee.jar' nachgeschaut  (hab´s leider selbst nicht vorliegen) ? Falls die TLDs dort nicht sind (musst du entweder ein 'jstl.jar' oder ein 'appserv-jstl.jar' bei deiner J2EE-Distribution haben. Hier sind die TLDs drin.


----------



## ma_ria (30. Nov 2007)

hallihalli

also ich find absilut keine .tld dateien 

in META-INF  der javaee.jar gib keine.

mit j2ee-distribution meinst du doch den jboss server oder?

bei meinem jboss gibs im verzeichnis 
server\default\deploy\jbossweb-tomcat55.sar\jsf-libs
eine jstl.jar, aber auch hier gibs keine .tld dateien

eine appserv-jstl.jar find ich auch nicht in meinem jboss

---> was ich absolut seltsam finde: wenn die seite mit dem aktualisieren button des browser aktualisiere wird sie plötzlich richtig dargestellt, also findet er jetz wohl auch die taglib? was ist das denn?

ich verstehs einfach nicht, hast du noch eine idee?

ps: selbst wenn ich eine .tld datei finden würde, wie registrier ich die in der web.xml?

schöne grüße
maria


----------



## ma_ria (30. Nov 2007)

nochwas: wenn ich den aktualisieren button mehrmals klicke wird die seite manchmal angezeigt und mancmal wird die taglib nicht gefunden. also je nach dem ob er grad lust hat oder so...find dieses verhalten sehr seltsam...


----------



## HLX (30. Nov 2007)

ma_ria hat gesagt.:
			
		

> hallihalli
> mit j2ee-distribution meinst du doch den jboss server oder?


Genau. War dort das 'javaee.jar' dabei? Das jar ist doch eigentlich vom Glassfish. Schau mal bei deinem JBoss ob dort nicht ein jboss-j2ee.jar oder ein jboss-javaee.jar dabei ist.



			
				ma_ria hat gesagt.:
			
		

> - was ich absolut seltsam finde: wenn die seite mit dem aktualisieren button des browser aktualisiere wird sie plötzlich richtig dargestellt, also findet er jetz wohl auch die taglib? was ist das denn?


S.o.: normalerweise bringt JBoss seine eigenen Bibliotheken mit. Diese würde ich nicht mit anderen vermischen. Wenn die o.g. Bibliotheken vorhanden sind, entferne das javaee.jar.



			
				ma_ria hat gesagt.:
			
		

> ps: selbst wenn ich eine .tld datei finden würde, wie registrier ich die in der web.xml?




```
<taglib>
    <taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
    <tablig-location>/WEB-INF/tld/c.tld</taglib-location>
</taglib>
```
Die TLD-Datei muss dann an der entsprechenden Stelle abgelegt sein.

Falls JSTL nicht in den JBoss-Libs sein sollte, kannst du dir hier die Jakarta-Referenzimplementierungen (Standard 1.1) inkl. TLDs herunterladen.


----------



## ma_ria (30. Nov 2007)

hallihallo,

also erstmal vielen dank für deine hilfe!

hab die javaee.jar aus meinem buildpath rausgeschmissen und dafür die jboss-j2ee.jar aus dem jboss ordner client eingebunden

auch noch dazu mussten die
javax.servlet.jar
ejb3-persistence.jar
jboss-ejb3x.jar
(alle aus dem client ordner des jboss)
damit die annotations gefunden werden

hab die .tld dateien runtergeladen und bekanntgemacht wie beschrieben.

aber: folgende exception
org.apache.jasper.JasperException: Failed to load or instantiate TagLibraryValidator class: org.apache.taglibs.standard.tlv.JstlCoreTLV

fehlt wohl immer noch etwas die frage ist was? 

Schöne grüße 
maria


----------



## HLX (30. Nov 2007)

Du verwendest die TLDs der Jakarta-Implementierung, also benutze auch ihre Klassen. Du musst die 'jstl.jar' und die 'standard.jar' aus deinem Download ebenfalls bekannt machen, so dass er den mitgelieferten TagLibraryValidator verwendet.

Kopiere die JARs in das web-inf/lib-Verzeichnis deines Projekts oder nehme sie in den Build-Path auf


----------



## ma_ria (30. Nov 2007)

*jüppi* es klappt!!!!!!!!

ich danke dir, dann kann ich ja jetz loslegen 

super!!

DANKE DANKE

grüße
maria


----------

