2012-01-04 21 views
14

日食 に私のJSF 2アプリケーションを実行している私はそれがすでに定義されているため、次のようにTLDがスキップされたいくつかの情報のログを取得しています:「INFO:TLDがスキップしました。URIはすでに定義されています」という意味は?

は私が知って好奇心
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://www.springframework.org/tags/form is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://www.springframework.org/tags is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jstl/core_rt is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jstl/core is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/core is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt_rt is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/fmt is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/functions is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/permittedTaglibs is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/scriptfree is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jstl/sql_rt is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jstl/sql is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/sql is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jstl/xml_rt is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jstl/xml is already defined 
Jan 3, 2012 7:24:45 PM org.apache.catalina.startup.TaglibUriRule body 
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/xml is already defined 

、このログには何を意味しますか?

+0

ご質問の再送信はお控えください。 – NullUserException

+2

リンクされた重複投稿は削除されました –

答えて

11

これは、Webアプリケーションのランタイムクラスパスに重複したTLDファイルがあることを意味します。ライブラリのJARファイルには通常TLDが含まれているため、これはWebアプリケーションのランタイムクラスパスに重複したJARファイルがあることを意味します。

アプリケーションサーバーの/libフォルダまたはJDKの/libフォルダにはアクセスしていないと仮定すると、それらの複製はWARビルドの/WEB-INF/libフォルダにあります。それをクリーンアップします。仕様によって必要なURIの

3

優先順位は次のとおりです。

J2EE platform taglibs - Tomcat doesn't provide these 

web.xml entries 

JARS in WEB-INF/lib & TLDs under WEB-INF (equal priority) 

Additional entries from the container 

Tomcatの負荷が二回TLD。

1、Tomcatが起動すると、tldがロードされ、tldファイル内のリスナーが検索されます。

2、最初のjspファイルがコンパイルされると、tldペアのキャッシュが構築されます。

1、負荷TLD TLDファイルに

をリスナーを見つけるためのweb.xmlからロードする場合、それがセットにTLDファイルからweb.xmlおよびURIからのtaglib-URIます。 WEB-INFまたはjarからロードするとき、uriはtldファイルからのものです。

Tomcatは重複するtldリスナーの追加を避ける必要があるため、uriがセットに存在するかどうかを確認します。 uriが既に存在する場合は、は投稿メッセージをに記録し、tldリスナーの追加をスキップします。

2、キャッシュ

1)web.xmlのエントリを構築し、タグURIはWEB-INFの下のweb.xmlから

2)スキャンTLDファイルを持っている、タグURIは以下から得ていますtldファイル

3)スキャンジャー、タグuriはtldファイルから得られます。

が存在する場合、そのエントリは無視されます。

0

たとえば、TomcatとMaven(または他のサーバ)を使用して、サーバ上にすでに見つかっているJSTLライブラリを出荷していて、サーバが不平を言っている場合などです。

あなたのアプリケーションは、(Tomcatの上)に配備された時点で
<dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 

は、エラーメッセージが表示されます:

ソリューションがあるため、タグ「範囲」と「提供」の値を使用することです
INFO: TLD skipped. URI: http://java.sun.com/jstl/core_rt is already defined 
Mar 02, 2017 2:19:32 PM org.apache.catalina.startup.TaglibUriRule body 

JSTLはすでにTomcatに同梱されています(あなたのIDEの場合のみ):

<dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
     <scope>provided</scope> 
    </dependency> 

エラーが表示されなくなります。

関連する問題