web-dev-qa-db-ja.com

JasperException:絶対URI:http://Java.Sun.com/jsp/jstl/coreを解決できません

GoDaddyのサーバーで次の問題が発生しています。 JSTLライブラリでJSPを使用しています。/WEB-INF/libフォルダーには、次のライブラリーが含まれています。

jstl.jar standard.jar

私のJSPは次のよ​​うになります。

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

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

%></p>

しかし、私は次の例外を受け続けます:

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

それがなぜそれをしているのかについてのアイデアはありますか?

22

JSTLの正しいバージョンを取得する必要があります。それらは異なるURIを使用します。

それが機能しない場合は、次のことを試してください: http://download.Java.net/maven/1/jstl/jars/jstl-1.2.jar (JSTL 1.2)、または1.1 JSTL jarをプルダウン。

coderanch にバージョン/ URIのより詳細なリストがあります。

29
brabster

あなたはあなたのウェブアプリケーションに以下のjarファイルを追加する必要があります

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

最近私は同じ問題を抱えています、上記の2つのjarファイルを追加することで解決しました

4
Sheo

ここでの回答は問題の説明に役立ちましたが、診断に役立ちませんでした理由正しいJSTLバージョンをロードしていると思ったときに起こっていました。最終的には、アプリケーションをデバッグし、TLDファイルプロセッサ(多分org.Apache.jasper.compiler.TagLibraryInfoImpl.getTagLibraryInfos())にブレークポイントを設定して、TLDファイルをどこから取得しているかを確認する必要がありました。

次に、TLDファイルの古いバージョンをjarからロードしていることを発見しましたが、それらが持っているとは思いませんでした。これは、GWT(ick)サブシステムの依存関係でした。問題のjarファイルが私のmaven依存関係から削除されると、問題は解決しました。

うまくいけば、これは将来的に他の誰かを助けるでしょう。

私はTomcat6 37を使用しました。私については、上記の解決策を試しましたが、それでもエラーが発生しました。 jstl-1.2.jarを%CATALINA_HOME%\ libディレクトリに追加すると、問題は解決しました。

3