我是Java EE的新手,尝试使用ServletContextListener,监听器作业是连接到数据库bla bla。当我尝试启动服务器(Tomcat9),它卡在:
“信息:已扫描至少一个JAR以查找TLD,但未包含TLD。请为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的JAR的完整列表。在扫描期间跳过不需要的JAR可以改善启动时间和JSP编译时间。”
于是我把“日志属性文件”中的一些属性改成这样:
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################
1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
2localhost.org.apache.juli.AsyncFileHandler.level = FINE
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
3manager.org.apache.juli.AsyncFileHandler.level = FINE
3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = FINE
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = FINE
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = FINE
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandler
# For example, set the org.apache.catalina.util.LifecycleBase logger to log
# each component that extends LifecycleBase changing state:
#org.apache.catalina.util.LifecycleBase.level = FINE
# To see debug messages in TldLocationsCache, uncomment the following line:
org.apache.jasper.compiler.TldLocationsCache.level = FINE
org.apache.jasper.servlet.TldScanner.level = FINE
# To see debug messages for HTTP/2 handling, uncomment the following line:
#org.apache.coyote.http2.level = FINE
# To see debug messages for WebSocket handling, uncomment the following line:
#org.apache.tomcat.websocket.level = FINE
所有答案都可以接受。谢谢你们。
将日志设置为FINE、FINEST或ALL以查找要排除的所有JAR不是必需的。
下面是一个脚本,它查找所有不包含TLDs的JAR(更改TOMCAT_HOME变量以匹配您的安装),并在表单上输出一个列表
jar1.jar,\
jar2.jar,\
...
可以粘贴到catalina.properties中(省略最后一个“,\”):
#!/bin/sh
TOMCAT_HOME=/opt/tomcat
for i in `find $TOMCAT_HOME -follow -name "*jar"`
do
jar tvf $i | grep -i tld > /dev/null
if [ $? -ne 0 ]; then
echo "$(basename $i),\\"
fi
done
但是,如果我得到了正确的通知,Tomcat9中有可能通过更改(在catalina.properties中)来排除所有JAR:
tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\
至
tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*.jar
(注释掉下面几行中的列表),然后通过更改:
tomcat.util.scan.StandardJarScanFilter.jarsToScan=\
log4j-web*.jar,log4j-taglib*.jar,log4javascript*.jar,slf4j-taglib*.jar
并添加通过修改上面的脚本获得的列表,以列出确实包含TLDS的JAR:
#!/bin/sh
TOMCAT_HOME=/opt/tomcat
for i in `find $TOMCAT_HOME -follow -name "*jar"`
do
jar tvf $i | grep -i tld > /dev/null
if [ $? -eq 0 ]; then
echo "$(basename $i),\\"
fi
done
这不是Tomcat中的bug或任何类型的问题。Tomcat只是通知您,有些JAR不包含TLD,您可以将它们添加到扫描器的跳过列表中,以提高启动性能。因此您有两种选择:
>
您可以安全地忽略该提示。但是,如果您感到恼火,您可以将特定日志记录程序设置为更高的日志记录级别,从而阻止tomcat对其进行日志记录。只需将org.apache.jasper.servlet.tldscanner.level=severe
添加到logging.properties的末尾。
启用调试日志,使tomcat列出这些JAR,并将它们添加到跳过列表中。设置:
org.apache.jasper.compiler.TldLocationsCache.level = FINE
org.apache.jasper.servlet.TldScanner.level = FINE
并将打印的JAR名称(不带路径)添加到tomcat_dir/conf/catalina.properties中的tomcat.util.scan.standardJarScanFilter.jarstoskip=...
中
我是JavaEE新手,尝试使用ServletContextListener,侦听器的工作是连接到数据库BLABLA。当我试图启动服务器(Tomcat 9)时,它被卡在: “信息:至少有一个JAR已扫描TLD,但未包含TLD。为此记录器启用调试日志记录,以获取已扫描但未找到TLD的JAR的完整列表。在扫描过程中跳过不需要的JAR可以缩短启动时间和JSP编译时间。” 所以我在“日志属性文件”中更改了一
我一直在Tomcat7.30(eclipse juno)上得到这一点 至少对一个罐子进行了TLD扫描,但没有TLD。启用此记录器的调试日志记录,以获取已扫描但未在其中找到TLD的JAR的完整列表。在扫描过程中跳过不需要的JAR可以改善启动时间和JSP编译时间。 好吧,我在中进行了操作,并将所有转换为并取消了对该行的注释 我仍然看到 那么我该怎么做才能看到那些罐子呢? 日志位置: tomcat日志位
当通过ant启动应用程序或编译JSP时,Tomcat7Jasper抱怨JAR文件过多或放错位置。我收到下面的消息 在tomcat中,如何在扫描过程中跳过不需要的JAR可以提高启动时间和JSP编译时间? 如何赋能更好的输出?
启动应用程序时出现问题。它抱怨说: ScanJars至少对一个JAR进行了TLD扫描,但没有TLD。启用此记录器的调试日志记录,以获取已扫描但未在其中找到TLD的JAR的完整列表。在扫描过程中跳过不需要的JAR可以改善启动时间和JSP编译时间。 有截图输出的链接 web.xml context.xml InputServlet result.jsp index.jsp 旧版本的Tomcat解决方案
我怎样才能解决这个问题?
我正在创建一个蓝牙扫描仪应用程序,并试图找到可用的设备配对。我有一个蓝牙耳机,我正试图找到运行android 10应用程序。 权限在清单中设置 应用程序包含一个简单的按钮,点击它我开始发现蓝牙设备 用于发现的回调 如果我错过了什么,有人能帮我吗?