至少有一个JAR被扫描用于TLD但尚未包含TLD

时间:2012-10-15 22:37:04

标签: eclipse tomcat tomcat7

我一直在tomcat 7.30(eclipse juno)上得到这个

  

至少有一个JAR被扫描用于TLD但尚未包含TLD。启用   调试此记录器的日志记录,以获取完整的JAR列表   扫描但未找到TLD。在期间跳过不需要的JAR   扫描可以缩短启动时间和JSP编译时间。

我去了conf\logging.properties并将所有INFO转为FINE并取消注释该行

# To see debug messages in TldLocationsCache, uncomment the following line:
org.apache.jasper.compiler.TldLocationsCache.level = FINE

我仍然看到At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging...

那么我该怎么做才能看到这些罐子?

记录位置

tomcat日志位于$ CATALINA_HOME \ logs \ catalina.yyyy-mm-dd.log中。 Eclipse在控制台中打印它们 - 如果您想让控制台记录you must

  

在服务器选项卡中,双击Tomcat服务器。你会得到一个   屏幕名为Overview。单击“打开启动配置”。点击   “常用”标签。在屏幕的底部,您可以检查   “文件”复选框,然后指定可用于记录您的文件   console(catalina.out)输出。最后,重启Tomcat服务器。

6 个答案:

答案 0 :(得分:25)

如果有人想要conf\logging.properties阅读one must(另请参阅here)将此文件转储到Servers\Tomcat v7.0 Server at localhost-config\文件夹中,然后添加以下行:

  

-Djava.util.logging.config.file =“$ {workspace_loc} \ Servers \ Tomcat v7.0 Server at localhost-config \ logging.properties”-Djava.util.logging.manager = org.apache.juli .ClassLoaderLogManager

launch configuration的VM参数正在使用。

这可能需要重启或两次(或不重启)但最后我在控制台中看到了鲜红色:

  

精细:在[file:/ C:/Dropbox/eclipse_workspaces/javaEE/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/ted2012/WEB-INF/中找不到TLD文件LIB /的logback经典-1.0.7.jar]。考虑将JAR添加到CATALINA_BASE / conf / catalina.properties文件中的tomcat.util.scan.DefaultJarScanner.jarsToSkip或org.apache.catalina.startup.TldConfig.jarsToSkip属性。 //等

我仍然不知道这个FINE警告出现的时间是什么 - 不会立即出现在tomcat启动 编辑:来自@Stephan的评论: “每次在JSP文件中进行任何更改时都会出现FINE警告”


奖励:要使警告消失,请添加catalina.properties

# Additional JARs (over and above the default JARs listed above) to skip when
# scanning for TLDs. The list must be a comma separated list of JAR file names.
org.apache.catalina.startup.TldConfig.jarsToSkip=logback-classic-1.0.7.jar,\
joda-time-2.1.jar,joda-time-2.1-javadoc.jar,mysql-connector-java-5.1.24-bin.jar,\
logback-core-1.0.7.jar,javax.servlet.jsp.jstl-api-1.2.1.jar

答案 1 :(得分:11)

(tomcat 8.0.28)以上方法对我不起作用。这是有用的:

  1. 将此行添加到{CATALINA-HOME} /conf/logging.properties的末尾:

    org.apache.jasper.level = FINEST
    
  2. 关闭服务器(如果已启动)。

  3. 打开控制台并运行(如果是Windows):

    %CATALINA_HOME%\bin\catalina.bat run
    
  4. 享受日志,例如(再次,对于Windows):

    {CATALINA-HOME}/logs/catalina.2015-12-28.log
    
  5. 我放弃了将它与Eclipse启动配置集成,因此请注意,这仅适用于控制台,从Eclipse启动服务器不会产生额外的日志消息。

答案 2 :(得分:6)

<强> Apache的Tomcat的8.0.33

如果要在tomcat中为TLD扫描的jar启用调试日志记录,则必须更改tomcat目录中的/conf/logging.properties文件。

取消注释该行:
org.apache.jasper.servlet.TldScanner.level =精细

FINE 级别用于调试日志。

这适用于普通的tomcat。

如果tomcat在eclipse下运行。然后你必须在eclipse中设置tomcat logging.properties的路径。

  1. 在eclipse中打开服务器视图。停止服务器。双击您的tomcat服务器。
    这将打开服务器的概述窗口。
  2. 点击打开启动配置。这将打开另一个窗口。
  3. 转到 Arguments 标签(第二个标签)。转到 VM参数部分。
  4. 将这两行粘贴在那里: -
    -Djava.util.logging.config.file =“{CATALINA_HOME} \ conf \ logging.properties”
    -Djava.util.logging.manager = org.apache.juli.ClassLoaderLogManager
    这里 CATALINA_HOME 是您PC的相应tomcat服务器目录。
  5. 保存Changes.Restart服务器。
  6. 现在,扫描TLD的jar文件应显示在日志中。

答案 3 :(得分:4)

(tomcat 7.0.32) 我有问题看到调试消息是在 tomcat / conf / logging.properties 文件中启用TldLocationsCache行。我只能看到一个警告,但不是扫描了什么库。改变每个loglevel尝试一切都没有运气。然后我进入流氓调试模式(=逐个删除,清理安装等),最后找到了原因。

我的webapp有一个自定义的 tomcat / webapps / mywebapp / WEB-INF / classes / logging.properties 文件。我将TldLocationsCache行复制到此文件,最后我可以看到jar文件名。

#要在TldLocationsCache中查看调试消息,请取消注释以下行:  org.apache.jasper.compiler.TldLocationsCache.level = FINE

答案 4 :(得分:2)

对于任何尝试使用Sysdeo Eclipse Tomcat plugin进行此操作的人,请尝试以下步骤(我使用Sysdeo Tomcat插件3.3.0,Eclipse Kepler和Tomcat 7.0.53来构建这些步骤):

  1. 窗口 - &gt;偏好 - &gt;展开树中的Tomcat节点 - &gt; JVM设置
  2. 在&#34;附加到JVM参数&#34;,单击&#34;添加&#34;按钮。
  3. 在&#34; New Tomcat JVM参数&#34;弹出窗口,输入-Djava.util.logging.config.file="{TOMCAT_HOME}\conf\logging.properties",其中{TOMCAT_HOME}是Tomcat目录的路径(例如:C:\ Tomcat \ apache-tomcat-7.0.53 \ conf \ logging.properties)。单击“确定”。
  4. 在&#34;附加到JVM参数&#34;,单击&#34;添加&#34;再次按钮。
  5. 在&#34; New Tomcat JVM参数&#34;弹出窗口,输入-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager。单击“确定”。
  6. 在“首选项”窗口中单击“确定”。
  7. 根据question above
  8. 中的说明对{TOMCAT_HOME}\conf\logging.properties文件进行调整
  9. 下次在Eclipse中启动Tomcat时,您应该会看到Eclipse控制台中列出的扫描的.jars而不是&#34;为此记录器启用调试日志记录&#34;信息。该信息也应记录在{TOMCAT_HOME}\logs\catalina.yyyy-mm-dd.log

答案 5 :(得分:0)

对我来说,我在将geoserver WAR部署到tomcat 7

时遇到了问题

要修复它,我使用的是Java 7并升级到Java 8.

这是在docker容器下运行的。 Tomcat 7.0.75 + Java 8 + Geos 2.10.2