2010-03-11 6 views
21

Ho avuto il seguente problema con il mio server GoDaddy. Sto usando JSP con la libreria JSTL. Il mio/cartella WEB-INF/lib contiene le seguenti librerie:JasperException: assoluto uri: http://java.sun.com/jsp/jstl/core non può essere risolto

jstl.jar standard.jar

mio JSP simile a questa:

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

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

%></p> 

Ma continuo a ricevere la seguente eccezione:

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 

Qualche idea sul perché lo sta facendo?

+0

quale versione di JSTL stai usando? –

+0

Come hai esplicitamente menzionato Godaddy, posso supporre che "solo" funzioni nell'ambiente di sviluppo locale? Se sì, come è il tuo 'web.xml'? – BalusC

risposta

29

È necessario ottenere la versione corretta di JSTL, utilizzano diversi URI.

Se quello non funziona, provare: http://download.java.net/maven/1/jstl/jars/jstl-1.2.jar (JSTL 1.2) o tirare giù i jar JSTL 1.1.

C'è un elenco più dettagliato di versioni/URI a coderanch.

+3

o se si utilizza Maven: JSTL JSTL 1,2

+0

Il collegamento javaranch è morto ... sarebbe stato più utile per includere queste informazioni qui piuttosto che il collegamento a un terzo luogo. –

4

è necessario aggiungere seguente file jar nella propria applicazione web

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

Recentemente ho lo stesso problema, che ho risolto con l'aggiunta di sopra due file jar

3

ho usato Tomcat6 37. Per quanto riguarda io, ho provato le soluzioni sopra menzionate ma ho ancora ottenuto l'errore. Il problema risolto dopo aver aggiunto jstl-1.2.jar alla mia directory% CATALINA_HOME% \ lib.

+0

Ciò accade perché il jstl-1.2.jar non è in qualche modo disponibile, aggiungendolo al server libs non è una buona idea, mentre risolve il problema. –

3

Le risposte qui sono state utili per spiegare il problema ma non mi ha aiutato a diagnosticare perché accadeva quando pensavo di caricare le giuste versioni di JSTL. Alla fine ho dovuto eseguire il debug dell'applicazione e inserire un punto di interruzione nel file processor TLD (forse org.apache.jasper.compiler.TagLibraryInfoImpl.getTagLibraryInfos()) per vedere da dove stavano ottenendo i file TLD.

Ho quindi scoperto che stava caricando vecchie versioni dei file TLD da un jar che non sospettavo di averle: era una dipendenza del sottosistema GWT (ick). Una volta rimosso il vaso incriminato dalle mie dipendenze di esperti, il problema è stato risolto.

Speriamo che questo possa aiutare qualcun altro in futuro.

+0

So che è passato un po 'di tempo, ma sto affrontando un problema stranamente simile (anche con JSTL in GWT - presumo che il server Jetty usato dalla modalità super-sviluppo di GWT abbia qualcosa a che fare con esso). Ti capita di ricordare _ quale barattolo offensivo hai dovuto rimuovere per risolvere questo? –

+0

Scusa ma non ricordo. Penso di aver usato la modalità di debug e ho cercato di vedere in quale barattolo mi trovavo una volta fermato. Buona fortuna. – Gray

+0

Nessun problema, grazie - prenderò una chiavetta e vedrò se riesco a trovare quale barattolo sia. Non posso credere che sia così difficile usare GWT con JSTL ... –

Problemi correlati