2010-03-11 1 views
21

Ich habe das folgende Problem mit meinem GoDaddy-Server. Ich verwende JSPs mit der JSTL-Bibliothek. Mein/WEB-INF/lib Ordner enthält die folgenden Bibliotheken:JasperException: absolute uri: http://java.sun.com/jsp/jstl/core kann nicht aufgelöst werden

jstl.jar standard.jar

Meine JSP etwa wie folgt aussieht:

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

<p>Hello! <% 
out.print(System.getProperty("java.class.path")); 

%></p> 

Aber ich halte die folgende Ausnahme erhalten:

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 

Irgendwelche Ideen, warum es das macht?

+0

Welche Version von JSTL verwenden Sie? –

+0

Wie du explizit von Godaddy gesprochen hast, darf ich annehmen, dass es "nur" in der lokalen Entwicklungsumgebung funktioniert? Wenn ja, wie sieht Ihre 'web.xml' aus? – BalusC

Antwort

29

Sie müssen die richtige Version von JSTL erhalten, sie verwenden unterschiedliche URIs.

Wenn das nicht funktioniert, versuchen Sie: http://download.java.net/maven/1/jstl/jars/jstl-1.2.jar (JSTL 1.2), oder ziehen Sie die 1.1 JSTL Gläser.

Es gibt eine detailliertere Liste von Versionen/URIs unter coderanch.

+3

oder wenn Sie mit Maven: jstl jstl 1,2

+0

Der javaranch Link ist tot ... diese Informationen hier hätte nützlicher gewesen eher schließen als auf einen Dritten verbindet Seite? ˅. –

4

benötigen Sie

jakarta-jstl-1.1.2.jar 
and jakarta-standard-1.1.2.jar files 

Kürzlich gleiche Problem Nach JAR-Datei in Ihrem Web-Anwendung hinzufügen Ich habe, dass ich durch die Zugabe über zwei JAR-Dateien aufgelöst haben

3

I verwendet Tomcat6 37. Was Ich habe versucht, oben genannten Lösungen, aber immer noch den Fehler. Das Problem wurde behoben, nachdem die Datei jstl-1.2.jar zu meinem% CATALINA_HOME% \ lib Verzeichnis hinzugefügt wurde.

+0

Das passiert, weil die jstl-1.2.jar irgendwie nicht verfügbar ist, das Hinzufügen zu den Server-Bibliotheken ist keine gute Idee, während es das Problem löst. –

3

Die Antworten hier waren nützlich, um das Problem zu erklären, aber es half mir nicht zu diagnostizieren warum es geschah, als ich dachte, dass ich die richtigen JSTL-Versionen geladen wurde. Letztendlich musste ich die Anwendung debuggen und einen Haltepunkt in den TLD-Dateiprozessor setzen (vielleicht org.apache.jasper.compiler.TagLibraryInfoImpl.getTagLibraryInfos()), um zu sehen, woher er die TLD-Dateien bekommen hat.

Ich entdeckte dann, dass es alte Versionen der TLD-Dateien aus einem Glas, das ich nicht vermutet hatte, geladen hatte - es war eine Abhängigkeit des GWT (ick) Subsystems. Sobald das problematische Glas aus meinen Abhängigkeiten entfernt wurde, wurde das Problem gelöst.

Hoffentlich hilft dies jemand anderen in der Zukunft.

+0

Ich weiß, dass es eine Weile her ist, aber ich stehe vor einem unheimlich ähnlichen Problem (auch mit JSTL in GWT - ich gehe davon aus, dass der Jetty-Server von GWTs Super-Dev-Modus etwas damit zu tun hat). Kannst du dich daran erinnern, welches verwerfende Glas du entfernen musstest, um das Problem zu lösen? –

+0

Sorry, aber ich kann mich nicht erinnern. Ich glaube, ich habe den Debug-Modus benutzt und nach dem Glas gesucht, in dem ich war, als es aufhörte. Viel Glück. – Gray

+0

Keine Sorge, danke - ich werde einen Stöber machen und sehen, ob ich finde, welches Glas es ist. Ich kann nicht glauben, dass es schwierig ist, GWT mit JSTL zu benutzen ... –