2

を使用してStruts-1います。Struts ベースの Web アプリケーションを開発しました。struts-taglib.jarJSP ファイルに次の行を挿入して、提供された JSP ページで struts タグを使用しています。

<%@ taglib prefix="html" uri="http://struts.apache.org/tags-html" %>
<%@ taglib prefix="logic" uri="http://struts.apache.org/tags-logic" %>
<%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean" %>

ローカルシステムで実行するとアプリケーションは正常に動作しますが、サーバーにデプロイすると、次の例外が表示されます。

org.apache.jasper.JasperException: The absolute uri: http://struts.apache.org/tags-html cannot be resolved in either web.xml or the jar files deployed with this application

上記の例外から、アプリケーションがstruts-taglib.jarファイルを見つけられなかったようです。

しかし、私はディレクトリに入れましstruts-taglib.jar/WEB-INF/lib。では、どこに問題があるのでしょうか。

注: 詳細については、 Java - Web アプリケーションのデプロイの問題も参照してください。

4

5 に答える 5

4

JAR は Web アプリの WEB-INF/lib に表示されると言います。私はあなたの言葉を信じます。

struts-taglib.jar開き、タグ ライブラリの .tld を開き、<taglib> ルートの下にある <uri> 値が JSP 内の特定のプレフィックスの uri と一致することを確認することをお勧めします。URI が一致していないと推測しています。つまり、JAR が CLASSPATH にある場合でも、クラス ローダーはタグ ライブラリを見つけることができません。

また、バージョンの変更によって JAR と JSP の URI が同期しなくなったかどうかも示される場合があります。

struts-1.3.10-all.zip をダウンロードして、含まれている struts-logic.tld を確認しました。<uri>タグの値はhttp://struts.apache.org/tags-logicなので、問題ないようです。

.tld ファイルは、JAR から外部化されているように見えます。.\src\el\src\main\resources\META-INF\tld でそれらを探し、/WEB-INF に配置し、web.xml で明示的に参照します。それはあなたを整理するはずです。

web.xml の .tld はもう必要ないと思いますが、URI の考えがうまくいかない場合は、「JSTL In Action」のこの例に似たものを web.xml に追加してみてください (それに応じて変更されています)。

<taglib>
    <taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
    <taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>

この時点で Struts 1.0 がかなり古いことが原因である可能性があります。taglib の JAR に .tld をパッケージ化することは、Struts 1.0 が開発された後、一般的な方法になりました。

于 2010-03-23T01:42:51.150 に答える
0

あなた/WEB-INF/libのクラスパスにありますか?

于 2010-03-14T04:59:02.807 に答える
0

struts-taglib-1.3.10.jar が /WEB-INF/lib/struts のようなサブフォルダーではなく、/WEB-INF/lib の直下にあることを確認してください。

于 2010-12-11T15:29:54.450 に答える
0

デプロイ後、実際には /WEB-INF/lib にある jar ファイルですか? そうでない場合は、手で置くことで問題が解決しますか?

于 2010-03-18T10:01:01.853 に答える
0

struts-taglib.jar の TLD ファイル内の URI と URI を再確認してください。

URI が最近変更されたことに注意してください: http://wiki.apache.org/struts/StrutsUpgradeNotes12to13

于 2010-12-08T07:59:22.170 に答える