一尘不染

如何在Tomcat 9.0.0M10中修复“已扫描的JAR,但未在其中找到TLD”

tomcat

我是Java EE的新手,试图在ServletContextListener上工作,并且侦听器工作是与数据库的连接bla
bla。当我尝试启动服务器(Tomcat 9)时,它卡在了:

“信息:至少扫描了一个JAR,但未包含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

所有答案都可以接受。 谢谢大家


阅读 660

收藏
2020-06-16

共1个答案

一尘不染

这不是tomcat中的错误或任何类型的问题。Tomcat只是通知您有些jar不包含TLD,您可以将其添加到扫描仪的跳过列表中以提高启动性能。因此,您有两种选择:

  1. 您可以放心地忽略该提示。但是,如果让您感到烦恼,则可以将该特定的记录器设置为更高的记录级别,从而防止tomcat记录它。只需添加org.apache.jasper.servlet.TldScanner.level = SEVERE到logging.properties的末尾即可。

  2. 启用调试日志记录以使tomcat列出这些jar并将其添加到跳过列表。组:

    org.apache.jasper.compiler.TldLocationsCache.level = FINE
    

    org.apache.jasper.servlet.TldScanner.level = FINE

并将打印的jar名称(不带路径)添加到tomcat.util.scan.StandardJarScanFilter.jarsToSkip=...tomcat_dir
/ conf / catalina.properties中

2020-06-16