java - 如何在 Tomcat 9.0.0M10 中修复 "JARs that were scanned but no TLDs were found in them "

标签 java tomcat server

我是 Java EE 的新手,正在尝试处理 ServletContextListener,监听器的工作是连接到数据库 bla bla。当我尝试启动服务器 (Tomcat 9) 时,它卡在了:

"INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time."

所以我像这样更改了“日志属性文件”中的一些属性:

    # 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

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

最佳答案

这不是 tomcat 中的错误或任何类型的问题。 Tomcat 只是通知您有不包含 TLD 的 jar,您可以将它们添加到扫描程序的跳过列表中以提高启动性能。所以你有两个选择:

  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
    

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

关于java - 如何在 Tomcat 9.0.0M10 中修复 "JARs that were scanned but no TLDs were found in them ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40204124/

相关文章:

java - 将<error-page>添加到不带web.xml的特定servlet

java - 我可以访问在 localhost :8080 from WAN. 上运行的应用程序吗?

c - 如何使用 C 语言处理 http 服务器接收到的 <form> 数据,例如 (key=value&key=value&key=value&...) 并将每个值分配给变量?

python - 如何通过重新启动应用程序来克服ModbusTcpServer中的 "Address already in use"?

java - 如何填充窗口?

java - 我已以编程方式在我的应用程序中添加 TextView,需要帮助为每个 TextView 设置 id

java - 如何进行动态方法调用?

java - mysql连接器字符集结果不支持utf8mb4

java - Spring 是否在容器初始化其过滤器之前设置应用程序上下文?

javascript - 方法 piSession.buildPageInteractionSession 无效