eclipse 至少扫描了一个JAR的TLD,但其中不包含任何TLD

cuxqih21  于 2023-01-13  发布在  Eclipse
关注(0)|答案(8)|浏览(271)

我在tomcat7.30上一直看到这个(月食朱诺)
至少有一个JAR已扫描了TLD,但未包含任何TLD。请启用此日志记录器的调试日志记录,以获得已扫描但未找到任何TLD的JAR的完整列表。在扫描期间跳过不需要的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...
我该怎么做才能看到那些jar?

日志位置:

Tomcat日志位于$ Catalina _HOME\logs\catalina.yyyy-mm-dd.log中。Eclipse在控制台中打印它们-如果您希望控制台以you must的方式记录日志
在servers选项卡中,双击Tomcat服务器。您将看到一个名为Overview的屏幕。单击“Open launch configuration”。单击“Common”选项卡。在屏幕底部,您可以选中“File”复选框,然后指定一个可用于记录控制台输出的文件( Catalina .out)。最后,重新启动Tomcat服务器。

crcmnpdw

crcmnpdw1#

如果想读取conf\logging.properties,必须(另请参见here)将此文件转储到Servers\Tomcat v7.0 Server at localhost-config\文件夹中,然后添加以下行:
-Djava.util.logging.config.file="${工作空间位置}\服务器\Tomcat v7.0服务器位于本地主机-配置\logging. properties”-Djava.util.logging.manager=org.apache.juli.类加载器日志管理器
到正在使用的launch configuration的VM参数。
这可能需要重新启动或两个(或不),但最后我看到在控制台中的鲜红色:
精细:在[file:/C:/Dropbox/eclipse_workspaces/javaEE/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/ted2012/WEB-INF/lib/logback-classic-1.0.7.jar]中未找到TLD文件。请考虑将该JAR添加到CATALINA_BASE/conf/ www.example.com文件中的tomcat.util.scan.DefaultJarScanner.jarsToSkip或org.apache. Catalina .startup.TldConfig.jarsToSkip属性catalina.properties。//等
我仍然不知道这个FINE警告出现的确切时间-在tomcat启动时没有立即出现EDIT:来自@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
ds97pgxw

ds97pgxw2#

**(tomcat 8.0.28)**以上方法对我不起作用。以下方法起作用:

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

org.apache.jasper.level = FINEST

1.关闭服务器(如果已启动)。
1.打开控制台并运行(如果是Windows):

%CATALINA_HOME%\bin\catalina.bat run

1.享受日志,例如(同样,对于Windows):

{CATALINA-HOME}/logs/catalina.2015-12-28.log

我放弃了将其与Eclipse启动配置集成,因此请注意,这只能从控制台工作,从Eclipse启动服务器不会产生额外的日志消息。

vql8enpb

vql8enpb3#

    • 高速缓存-Tomcat-8.0.33**

如果要在Tomcat中为TLD扫描的jar启用调试日志记录,则必须更改Tomcat目录中的/conf/www.example.com文件。logging.properties file in tomcat directory.
取消注解行:

    • 组织. Apache. jasper. servlet. TldScanner.级别=精细**
    • FINE**级别用于调试日志。

这应该适用于普通的tomcat。
如果tomcat运行在eclipse下,那么你必须在eclipse中设置tomcat的路径www.example.com。logging.properties in eclipse.
1.在eclipse中打开servers视图。停止服务器。双击你的tomcat服务器。
这将打开服务器的概述窗口。
1.单击打开启动配置。这将打开另一个窗口。
1.转到参数选项卡(second tab)。转到VM参数部分。
1.粘贴这两行:-

  • Djava. util. logging.配置文件="{目录首页}\配置文件\日志记录属性"
  • djava. util. logging.管理器=组织. apache. juli.类加载器日志管理器
    这里的CATALINA_HOME是您PC上对应的Tomcat服务器目录。
    1.保存更改。重新启动服务器。
    现在扫描TLD的jar文件应该显示在日志中。
rseugnpd

rseugnpd4#

**(tomcat 7.0.32)**虽然在 *tomcat/conf/ www.example.com * 文件中启用了TldLocationsCache行,但我在查看调试消息时遇到了问题logging.properties。我只能看到一个警告,但看不到扫描了哪些库。更改了每个日志级别,尝试了所有操作,但没有成功。然后我进入了流氓调试模式(=逐个删除、全新安装等),最后找到了原因。

我的网络应用程序有一个定制的 tomcat/webapps/mywebapp/WEB-INF/classes/logging.properties 文件。我复制了TldLocationsCache行到这个文件,最后我可以看到jar文件名。

要查看TldLocationsCache中的调试消息,请取消注解以下行:org.apache.碧玉.编译器.TldLocationsCache.级别=精细

5q4ezhmt

5q4ezhmt5#

对于任何尝试使用Sysdeo Eclipse Tomcat plugin来实现此功能的人,请尝试以下步骤(我使用了Sysdeo Tomcat Plugin 3.3.0、Eclipse Kepler和Tomcat 7.0.53来构建这些步骤):
1.窗口--〉首选项--〉展开树中的Tomcat节点--〉JVM设置
1.在“附加到JVM参数”下,单击“添加”按钮。
1.在“New Tomcat JVM parameter”弹出窗口中,输入-Djava.util.logging.config.file="{TOMCAT_HOME}\conf\logging.properties",其中{TOMCAT_HOME}是Tomcat目录的路径(例如:)。单击“确定”。
1.在“附加到JVM参数”下,再次单击“添加”按钮。
1.在“新建Tomcat JVM参数”弹出窗口中,输入-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager。单击OK。
1.在首选项窗口中单击确定。
1.按照question above中的指定对{TOMCAT_HOME}\conf\logging.properties文件进行调整。
1.下一次在Eclipse中启动Tomcat时,您应该看到Eclipse控制台中列出了扫描的. jar,而不是“Enable debug logging for this logger”消息,该信息也应该记录在{TOMCAT_HOME}\logs\catalina.yyyy-mm-dd.log中。

yr9zkbsy

yr9zkbsy6#

我的设置:

  • 月食2022-06
  • 嵌入式tomcat服务器8.5
  • log4j2
  • vaadin 23.2.3(普通SpringMVC,不带Spring Boot)

要在log4j 2中启用JarScanner日志记录:
1.在服务器的命令行中将日志管理器定义为log4j 2 LogManager:

-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager

1.在服务器引导类路径中包含所需的log4j 2 jar(“用户条目”部分):log4j-api-*.jar, log4j-core-*.jar, log4-jul-*.jar
1.将log4j配置文件所在的资源路径包含到服务器引导类路径中(“用户条目”部分)
1.在配置文件中定义记录器级别:

<logger name="org.apache.jasper.servlet.TldScanner">
      <level value="TRACE" />
   </logger>

顺便说一句:在vaadin项目中根本不需要TLD扫描。请参见this topic中的详细讨论。对于我的设置,只有www.example.com的编辑catalina.properties达到了预期的效果(意味着根本不需要进行TLD扫描):

  • jarsToSkip:添加*.jar
  • jarsToScan:添加flow-server-*.jar and vaadin-dev-server-*.jar

必须扫描这两个vaadin库,以便tomcat找到基本的servlet配置(vaadin的AppShellConfiguratorVaadinMVCWebAppInitializer的具体派生。
另外,我在eclipse项目的配置中取消了“JavaServer Faces”Facet(但我不确定这是否有效,在eclipse重新启动后,这个复选框再次被激活)。

vyswwuz2

vyswwuz27#

对我来说,我在将geoserver WAR部署到tomcat7时遇到了这个问题
为了解决这个问题,我使用了Java7并升级到了Java8。
这是在Docker容器下运行的。Tomcat 7.0.75 + Java 8 + Geos 2.10.2

hgb9j2n6

hgb9j2n68#

我也有同样的问题。这是关于tomcat的。我已经通过删除tomcat和添加tomcat解决了这个问题。现在它工作正常。

相关问题